给你一个字符串 s ,根据下述规则反转字符串:
- 所有非英文字母保留在原有位置。
- 所有英文字母(小写或大写)位置反转。
返回反转后的 s 。

双指针往往使用while循环
翻转最重要的细节就是什么时候停止翻转!——————while(i<j){ ---进行翻转---}
class Solution {
public String reverseOnlyLetters(String s) {
char ch[] = s.toCharArray();
int j = ch.length - 1;
int i=0;
while(i<j){
if(!Character.isLetter(ch[i])){
i++;
}
if(!Character.isLetter(ch[j])){
j--;
}
if(Character.isLetter(ch[i])&&Character.isLetter(ch[j])){
char temp=ch[i];
ch[i]=ch[j];
ch[j]=temp;
i++;
j--;
}
}
return new String(ch);
}
}
Python实现:仅反转字符串中的英文字母
3万+

被折叠的 条评论
为什么被折叠?



