917.仅仅反转字母

阅读 49

2022-01-28

class Solution {
    public String reverseOnlyLetters(String s) {
        int left = 0, right = s.length() - 1;
        char[] result = s.toCharArray();
        while(left < right){
            while(left < right && !Character.isLetter(result[left])) ++left;
            while(left < right && !Character.isLetter(result[right])) --right;
            if(left < right) swap(result, left++, right--);
        }
        return new String(result);
    }

    public void swap(char[] s, int left, int right){
        char temp = s[left];
        s[left] = s[right];
        s[right] = temp;
    }
}

精彩评论(0)

0 0 举报