LeetCode每日一题: 反转字符串中的元音字母(No.345)

346 阅读1分钟

题目:反转字符串中的元音字母


编写一个函数,以字符串作为输入,反转该字符串中的元音字母。

示例:


输入: "hello"
输出: "holle"

输入: "leetcode"
输出: "leotcede"

思考:


用双指针,两个指针分别从左右两端寻找元音字母,找到后交换位置即可。

实现:


class Solution {
public String reverseVowels(String s) {
    String dict = "aeoiuAEOIU";
    char[] array = s.toCharArray();
    int left = 0;
    int right = array.length - 1;
    while (left < right) {
        while (left < right && (dict.indexOf(array[left]) < 0)) {
            left++;
        }
        while (left < right && (dict.indexOf(array[right]) < 0)) {
            right--;
        }
        if (left < right) {
            char temp = array[left];
            array[left] = array[right];
            array[right] = temp;
            left++;
            right--;
        }
    }
    return new String(array); 
}
}