程式語言 - LeetCode - CPP - 345. Reverse Vowels of a String



題目:


解答:

class Solution {
public:
    string reverseVowels(string s) {
        vector<char> buf;
        vector<char> vowel = { 'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U' };

        for (int i = s.size() - 1; i >= 0; i--) {
            if (std::find(vowel.begin(), vowel.end(), s[i]) != vowel.end()) {
                buf.push_back(s[i]);
            }
        }

        int j = 0;
        for (int i = 0; i < s.size(); i++) {
            if (std::find(vowel.begin(), vowel.end(), s[i]) != vowel.end()) {
                s[i] = buf[j++];
            }
        }

        return s;
    }
};