You will be given a string of characters and special characters, you task is to reverse the string leaving special characters in same place.
Input :
First Input : String
Output : Special Reverse of string
Sample Testcases :
I/P 1:
dsd$^f#
O/P 1:
fds$^d#
Solution :
s=input()
d=dict()
res=””
for i in range(len(s)):
if s[i].isalnum()==False:
d.update({i:s[i]})
else:
res+=s[i]
res=list(res[::-1])
for i,j in d.items():
res.insert(i,j)
print(“”.join(res))

In java:
class Strings{
public static void main(String args[])
{
String str = “dsd$^f#”;
String str1=””;
String str2=””;
for(int i=0;i<str.length();i++)
{
if(Character.isAlphabetic(str.charAt(i)))
{
str1 = str1+str.charAt(i);
}
}
int j=1;
for(int i=0;i<str.length();i++)
{
if(Character.isAlphabetic(str.charAt(i)))
{
str2 = str2+str1.charAt(str1.length()-j);
j++;
}
else
{
str2=str2+str.charAt(i);
}
}
System.out.println(str2);
}
}
In java:
class Strings{
public static void main(String args[])
{
String str = “dsd$^f#”;
String str1=””;
String str2=””;
for(int i=0;i<str.length();i++)
{
if(Character.isAlphabetic(str.charAt(i)))
{
str1 = str1+str.charAt(i);
}
}
int j=1;
for(int i=0;i<str.length();i++)
{
if(Character.isAlphabetic(str.charAt(i)))
{
str2 = str2+str1.charAt(str1.length()-j);
j++;
}
else
{
str2=str2+str.charAt(i);
}
}
System.out.println(str2);
}
}