0917. Reverse Only Letters

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);
    }
}