LeetCode345. 反转字符串中的元音字母

一、题目描述

二、解法

思路:对撞指针

class Solution {
    public String reverseVowels(String s) {
        if (s == null || s.length() < 2) return s;
        char[] chars = s.toCharArray();
        int l = 0, r = chars.length - 1;
        while (l < r) {
            if (!isType(chars[l])) {
                l ++;
                continue;
            }
            if (!isType(chars[r])) {
                r --;
                continue;
            }
            swap(chars, l, r);
            l ++;
            r --;
        }
        return new String(chars);
    }
    private boolean isType(char c) {
        return (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u' ||
                c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U');
    }
    private void swap(char[] chars, int a, int b) {
        char temp = chars[a];
        chars[a] = chars[b];
        chars[b] = temp;
    }
}

 

posted @ 2020-12-07 10:51  不学无墅_NKer  阅读(77)  评论(0编辑  收藏  举报