Given a string S
, return the "reversed" string where all characters that are not a letter stay in the same place, and all letters reverse their positions.java
Example 1:數組
Input: "ab-cd" Output: "dc-ba"
Example 2:指針
Input: "a-bC-dEf-ghIj" Output: "j-Ih-gfE-dCba"
Example 3:code
Input: "Test1ng-Leet=code-Q!" Output: "Qedo1ct-eeLg=ntse-T!"
Note:字符串
S.length <= 100
33 <= S[i].ASCIIcode <= 122
S
doesn't contain \
or "
字符串操做,將字母reverse,其餘字符保持在原來位置上。我使用了兩個數組,一個指針string
class Solution { public String reverseOnlyLetters(String S) { char[] c = S.toCharArray(); char[] result = S.toCharArray(); int index = result.length-1; for(int i=0;i<c.length;i++){ if(c[i]>='a' && c[i]<='z' || c[i]>='A' && c[i]<='Z'){ while(index>=0 && !(result[index]>='a' && result[index]<='z' || result[index]>='A' && result[index]<='Z')){ index--; } if(index>=0) result[index--] = c[i]; } } return String.valueOf(result); } }