给定一个字符串 S
,返回 “反转后的” 字符串,其中不是字母的字符都保留在原地,而所有字母的位置发生反转。
示例 1:
输入:"ab-cd" 输出:"dc-ba"
示例 2:
输入:"a-bC-dEf-ghIj" 输出:"j-Ih-gfE-dCba"
示例 3:
输入:"Test1ng-Leet=code-Q!" 输出:"Qedo1ct-eeLg=ntse-T!"
提示:
S.length <= 100
33 <= S[i].ASCIIcode <= 122
S
中不包含\
or"
public static String reverseOnlyLetters(String S) {
String[] les = new String[S.length()];
List<String> list = new ArrayList<String>();
String letter="";
for(int i=0;i<S.length();i++) {
if((S.charAt(i)>='a' && S.charAt(i)<='z') || (S.charAt(i)>='A' && S.charAt(i)<='Z')) {
list.add(String.valueOf(S.charAt(i)));
}else {
les[i] = String.valueOf(S.charAt(i));
}
}
for(int k=list.size()-1;k>=0;k--) {
boolean flag =false;
for(int l=0;l<les.length;l++) {
if(les[l] == null && flag==false) {
les[l] = list.get(k);
flag = true;
}
}
}
for(String str:les) {
letter +=str;
}
return letter;
}