Mutations in Python - HackerRank Solution

Mutations in Python - HackerRank Solution
Mutations in Python - HackerRank Solution


Problem :


We have seen that lists are mutable (they can be changed), and tuples are immutable (they cannot be changed).
Let's try to understand this with an example.
You are given an immutable string, and you want to make changes to it.

Example :
>>> string = "abracadabra"

You can access an index by:
>>> print string[5]
a

What if you would like to assign a value?
>>> string[5] = 'k' 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment

How would you approach this?
One solution is to convert the string to a list and then change the value.
Example :
>>> string = "abracadabra"
>>> l = list(string)
>>> l[5] = 'k'
>>> string = ''.join(l)
>>> print string
abrackdabra

Another approach is to slice the string and join it back.
Example :
>>> string = string[:5] + "k" + string[6:]
>>> print string
abrackdabra

Task :

Read a given string, change the character at a given index and then print the modified string.



Input Format :

The first line contains a string, S.
The next line contains an integer i, denoting the index location and a character c separated by a space.

Output Format :

Using any of the methods explained above, replace the character at index i with character c.



Sample Input :

abracadabra
5 k

Sample Output :

abrackdabra



Solution 1 :


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
# Mutations in Python - HackerRank Solution
def mutate_string(string, position, character):
    # Mutations in Python - HackerRank Solution START
    l = list(string)
    l[position] = character;
    string = ''.join(l);
    return string
    # Mutations in Python - HackerRank Solution END
if __name__ == '__main__':
    s = input()
    i, c = input().split()
    s_new = mutate_string(s, int(i), c)
    print(s_new)

Solution 2 :


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
# Mutations in Python - HackerRank Solution
def mutate_string(string, position, character):
    # Mutations in Python - HackerRank Solution START
    pos = position+1
    Output = string[:position]+character+string[pos:]
    return Output
    # Mutations in Python - HackerRank Solution END

if __name__ == '__main__':
    s = input()
    i, c = input().split()
    s_new = mutate_string(s, int(i), c)
    print(s_new)





Disclaimer :-
the above hole problem statement is given by hackerrank.com but the solution is generated by the codeworld19 authority if any of the query regarding this post or website fill the following contact form thank you.

Next Post Previous Post
2 Comments
  • Coder page solve
    Coder page solve Saturday, December 12, 2020

    def mulatble(string, position, character):
    l = list(string)
    l[position] = character;
    string = ''.join(l);
    return string
    if __name__=='__main__':
    string = input()
    position, character = input().split()
    new = mulatble(string, int(position), character)
    print(new)

  • Ranjitha
    Ranjitha Sunday, March 26, 2023

    In the second solution the output should be
    Output = string[:position-1]+character+[position:]

Add Comment
comment url