Join Regular Classroom : Visit ClassroomTech

Reverse a String Except Special Characters – Infytq 2019 Solve

Problem: Reverse a given string keeping its special character(s) at the same place

Input Format: First line contains a single integer, the number of testcases n. Next n line contains n strings as input.

(NOTE: The actual problem didn’t have the number of testcases as input. But for your better convenience we have worked with testcases.)

Sample Input:

3
intell#ect
h@ello
a#b@c

Sample Output:

tcelle#tni
o@lleh
c#b@a

Explanation: Here in the first example the whole string is reversed keeping the special character ‘#’ fixed in its original position i.e. on position 7.

In the second case, whole string is reversed keeping the special character ‘@’ fixed in its original position i.e. on position 2.

In the last case, the whole string is reversed keeping the special characters ‘#’, ‘@’ fixed in its original position i.e. on position 2 and 4 respectively.

Solution: We strongly recommend you to try the problem first before moving to the solution.

# Solution of String Reversal Except Special Characters problem in Python 
# www.codewindow.in 

def solve(s):
    import re
    str_list=re.findall("[a-z,A-Z]",s)
    str_list.reverse()
    
    for i in range(len(s)):
        if ((ord(s[i])>=32 and ord(s[i])<=47) or (ord(s[i])>=58 and ord(s[i])<=64) or (ord(s[i])>=94 and ord(s[i])<=96) or (ord(s[i])>=123 and ord(str[i])<=126)):
            str_list.insert(i,s[i])
    print(''.join(str_list))

# Driver Code
test_case=int(input());     # Take number of testcases
while(test_case):
    str=input()
    solve(str)
    test_case-=1

Input:

3
intell#ect
h@ello
a#b@c

Output:

tcelle#tni
o@lleh
c#b@a

Follow Us

You Missed