不想学习呜呜~ 先做做简单题咯!好久没做题 啥都不会子啦 笑死
java:感谢大佬题解 学习一下 平平无奇的反转
Character.isLetter(ch) 方法用于判断指定字符是否为字母,如果字符为字母,则返回 true;否则返回 false。ch -- 要测试的字符
class Solution {
public String reverseOnlyLetters(String s) {
int n = s.length();
char[] ss = s.toCharArray();
for(int i = 0, j = n - 1; i < j; ){
while(i < j && !Character.isLetter(ss[i])) i++;
while(i < j && !Character.isLetter(ss[j])) j--;
if(i < j){
char tmp = ss[i];
ss[i++] = ss[j];
ss[j--] = tmp;
}
}
return String.valueOf(ss);
}
}
python:
class Solution:
def reverseOnlyLetters(self, s: str) -> str:
ch = list(s)
n = len(s)
l, r = 0, n - 1
while l < r:
while l < r and not('a' <= s[l] <= 'z' or 'A' <= s[l]<= 'Z'):
l += 1
while l < r and not('a' <= s[r] <= 'z' or 'A' <= s[r]<= 'Z'):
r -= 1
if l < r:
ch[l],ch[r] = ch[r], ch[l]
l += 1
r -= 1
return "".join(ch)