Default Arguments Python HackerRank Solution

Default Arguments - Python HackerRank Solution

Hello Friends, How are you? Today I am going to solve the HackerRank Default Arguments Problem with a very easy explanation. In this article, you will get more than one approach to solve this problem. So let's start-

{tocify} $title={Table of Contents}

Default Arguments Python HackerRank Solution

HackerRank Python Default Arguments Solution - Problem Statement

In this challenge, the task is to debug the existing code to successfully execute all provided test files.

Python supports a useful concept of default argument values. For each keyword argument of a function, we can assign a default value which is going to be used as the value of said argument if the function is called without it. For example, consider the following increment function:

def increment_by(n, increment=1):
    return n + increment

The functions work like this:

>>> increment_by(5, 2)
7
>>> increment_by(4)
5
>>>

Debug the given function print_from_stream using the default value of one of its arguments.

The function has the following signature:

def print_from_stream(n, stream)

This function should print the first n values returned by get_next() method of stream object provided as an argument. Each of these values should be printed in a separate line.

Whenever the function is called without the stream argument, it should use an instance of EvenStream class defined in the code stubs below as the value of stream.

Your function will be tested on several cases by the locked template code.

Input Format

The input is read by the provided locked code template. In the first line, there is a single integer q denoting the number of queries. Each of the following q lines contains a stream_name followed by integer n, and it corresponds to a single test for your function.

Constraints

1 <= q <= 100
1 <= n <= 10

Output Format:

The output is produced by the provided and locked code template. For each of the queries (stream_name, n), if the stream_name is even then print_from_stream(n) is called. Otherwise, if the stream_name is odd, then print_from_stream(n, OddStream()) is called.

Sample Input 0

3 odd 2 even 3 odd 5 {codeBox}

Sample Output 0

1 3 0 2 4 1 3 5 7 9 {codeBox}

Explanation 0

There are 3 queries in the sample.

In the first query, the function print_from_stream(2, OddStream()) is executed, which leads to printing values 1 and 3 in separated lines as the first two non-negative odd numbers.

In the second query, the function print_from_stream(3) is executed, which leads to printing values 2, 4 and 6 in separated lines as the first three non-negative even numbers.

In the third query, the function print_from_stream(5, OddStream()) is executed, which leads to printing values 1, 3, 5, 7 and 9 in separated lines as the first five non-negative odd numbers.

Python Default Arguments - Hacker Rank Solution

Approach I: Default Arguments HackerRank Python Solution

# ========================
#       Information
# ========================

# Name: Default Arguments Python HackerRank Problem
# Direct Link: https://www.hackerrank.com/challenges/default-arguments/problem
# Difficulty: Medium
# Max Score: 30
# Language: Python 3

# ========================
#         Solution Start
# ========================

# Default Arguments Python HackerRank Solution Start

class EvenStream(object):
    def __init__(self):
        self.current = 0

    def get_next(self):
        to_return = self.current
        self.current += 2
        return to_return

class OddStream(object):
    def __init__(self):
        self.current = 1

    def get_next(self):
        to_return = self.current
        self.current += 2
        return to_return

# (skeliton_head) ----------------------------------------------------------------------

def print_from_stream(n, stream=None):
    if stream is None:
        stream = EvenStream()
    for _ in range(n):
        print(stream.get_next())

# probable error of author during conversion from Python2 to Python3...
raw_input = input

# (skeliton_tail) ----------------------------------------------------------------------

queries = int(input())
for _ in range(queries):
    stream_name, n = input().split()
    n = int(n)
    if stream_name == "even":
        print_from_stream(n)
    else:
        print_from_stream(n, OddStream())

# Default Arguments Python Hacker Rank Solution END
# MyEduWaves


Disclaimer: The above Problem ( Python Default Arguments ) is generated by Hackerrank but the Solution is Provided by MyEduWaves. This tutorial is only for Educational and Learning purposes. Authority if any of the queries regarding this post or website fill the contact form.

I hope you have understood the solution to this HackerRank Problem. All these three solutions will pass all the test cases. Now visit Python Default Arguments Hackerrank Problem and try to solve it again.

All the Best!

Post a Comment

Previous Post Next Post