LeetCode 345. 反轉字符串中的元音字母

題目描述: 反轉字符串中的元音字母

        編寫一個函數,以字符串作爲輸入,反轉該字符串中的元音字母。

示例 1:
        給定 s = "hello", 返回 "holle".

示例 2:
        給定 s = "leetcode", 返回 "leotcede".

注意:
        元音字母不包括 "y".

解題思路:

        雙向遍歷,各找到一個元音字母后調換一次位置,然後繼續遍歷就行了。

代碼:

class Solution {
public:
    string reverseVowels(string s) {
        int l = 0;
        int r = s.length()-1;
        while(l <= r){
            while(!check(s[l])&&l <= r)
                l ++;
            while(!check(s[r])&&l <= r)
                r --;
            if(l >= r) break;
            swap(s[l], s[r]);
            l ++;
            r --;
        }
        return s;
    }
    
    bool check(char c){
        if(c == 'a'||c == 'e'||c == 'i'||c == 'o'||c =='u'||c == 'A'||c == 'E'||c == 'I'||c == 'O'||c =='U')
            return true;
        return false;
    }
};

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章