0917. Reverse Only Letters #
题目 #
- 给定字符串
s
,根据下述规则反转字符串:- 所有非英文字母保留在原有位置。
- 所有英文字母(小写或大写)位置反转。
- 返回反转后的
s
。
思路 #
双指针 #
代码 #
双指针 #
class Solution {
public String reverseOnlyLetters(String s) {
char[] charArray = s.toCharArray();
int i = 0, j = s.length() - 1;
while (i < j) {
if (Character.isLetter(s.charAt(i)) == false) i++;
else if (Character.isLetter(s.charAt(j)) == false) j--;
else {
char ch = charArray[i];
charArray[i] = charArray[j];
charArray[j] = charArray[i];
i++; j--;
}
}
return String.valueOf(charArray);
}
}