Infosys InfyTQ Practice Problem – 1 | Four Digit OTP

Infosys InfyTQ Practice Problem – 1 | Four Digit OTP

In this post, we will see one practice problem which can be useful for Infosys Infytq coding exam preparation.

Problem Statement: You will be given a number in the form of the string, extract out digits at odd index then square and merge them. The first 4 digits will be the required OTP which shows as output. If 4 digit OTP is not generated then give output -1.

Sample Test Cases:

Input 1: '34567'
Output 1: 1636

Input 2: '0123'
Output 2: -1

Input 3: '012345'
Output 3: 1925

Input 4: '54892356'
Output 4: 1681

Approach : You have to pick an odd index integer from the string then take a square of it and concatenate to each other. The final output should be the first 4 digits of it. If 4 digit OTP is not possible to generate then give output as -1.

Now let’s see the different ways to write the code for this:

Code 1: Using simple for loop with range() built-in function.

# Code : 1

if __name__ == "__main__" :

    # Taking input from user
    input_string = input()

    # Empty string
    otp_string = ""

    # loop run from 0 to length of string - 1
    for i in range(len(input_string)) :

        # check if i is odd or not
        # if odd then proceed with square
        # and concatenation
        if i % 2 :
            
            # Converting string to integer
            # and then doing the square of it
            num_square = int(input_string[i]) ** 2

            # Concatenating the num_square values
            # with otp_string values
            otp_string += str(num_square)

        # if length of otp_string will become
        # greater than or equal to 4 then
        # print 4 digit answer and
        # break out of the loop
        if len(otp_string) >= 4 :
            
            print(otp_string[ : 4])
            break

    # if for loop runs successfully without break
    # then that means otp_string with length 4
    # is not possible so then prints -1
    # as an output
    else:
        print("-1")
        

Code 2: Using for loop with range() built-in function step concept.

# Code : 2

# Main Code
if __name__ == "__main__" :

    # Taking input from user
    input_string = input()

    # Empty string
    otp_string = ""

    # Iterating from 1 to length of input string - 1
    # with step of 2
    for i in range(1, len(input_string), 2) :

        # Converting string to integer
        # and then doing the square of it
        num_square = int(input_string[i]) ** 2

        # Concatenating the num_square values
        # with otp_string values
        otp_string += str(num_square)

        # if length of otp_string will become
        # greater than or equal to 4 then
        # print 4 digit answer and
        # break out of the loop
        if len(otp_string) >= 4 :
            
            print(otp_string[ : 4])
            break

    # if for loop runs successfully without break
    # then that means otp_string with length 4
    # is not possible so then prints -1
    # as an output
    else:
        print("-1")

Code 3: Using string slicing concept first then applying for loop on it.

# Code: 3

# Main Code
if __name__ == "__main__" :

    # Taking input from user
    input_string = input()

    # Take out the required characters in one
    # string using string slicing concept
    required_string = input_string[1 : : 2]
    
    # Empty string
    otp_string = ""

    for character in required_string :

        otp_string += str(int(character) ** 2)
        
        # if length of otp_string will become
        # greater than or equal to 4 then
        # print 4 digit answer and
        # break out of the loop
        if len(otp_string) >= 4 :
            
            print(otp_string[ : 4])
            break

    # if for loop runs successfully without break
    # then that means otp_string with length 4
    # is not possible so then prints -1
    # as an output
    else:
        print("-1")

Code 4: Using string slicing concept first then list comprehension and join() built-in function.

# Code: 4

# Main Code
if __name__ == "__main__" :

    # Taking input from user
    input_string = input()

    # Take out the required characters in one
    # string using string slicing concept
    required_string = input_string[1 : : 2]

    # create a list of square of each integral
    # values using list comprehension 
    otp_string_list = [str(int(char) ** 2) for char in required_string]

    # create a string from the list of characters
    # using join() method
    otp_string = "".join(otp_string_list)

    # if length of otp_string will become
    # greater than or equal to 4 then
    # print 4 digit answer
    if len(otp_string) >= 4 :
        print(otp_string[ : 4])
 
    # otp_string with 4 digit not possible
    # then print -1 as an output
    else:
        print(-1)

Thanks for reading this blog.

Check out this post also: TCS Xplore CPA Python Coding Question -1 with Solution

If you have any doubts in understanding the above Code or Question then please comment below, we will try to clear your doubts.

Leave a Reply

Your email address will not be published.

📢 Need further clarification or have any questions? Let's connect!

Connect 1:1 With Me: Schedule Call


If you have any doubts or would like to discuss anything related to this blog, feel free to reach out to me. I'm here to help! You can schedule a call by clicking on the above given link.
I'm looking forward to hearing from you and assisting you with any inquiries you may have. Your understanding and engagement are important to me!

This will close in 20 seconds