345. Reverse Vowels of a String

来源:互联网 发布:vscode 快捷键 编辑:程序博客网 时间:2024/05/16 08:37

Write a function that takes a string as input and reverse only the vowels of a string.

Example 1:
Given s = "hello", return "holle".

Example 2:

Given s = "leetcode", return "leotcede".

【难度】Easy

【思路】分别从头和末尾遍历字符串,遇到元音字母,则交换。

class Solution {public:    string reverseVowels(string s) {        string result = s;        int len = s.length();        if(len==0) return result;        int i = 0, j=len-1;        while(i<=j)        {            while((i<j)&&result[i]!='a'&&result[i]!='A'&&result[i]!='e'&&result[i]!='E'&&result[i]!='i'&&result[i]!='I'&&result[i]!='o'&&result[i]!='O'&&result[i]!='u'&&result[i]!='U')            {                i++;            }            while((i<j)&&result[j]!='a'&&result[j]!='A'&&result[j]!='e'&&result[j]!='E'&&result[j]!='i'&&result[j]!='I'&&result[j]!='o'&&result[j]!='O'&&result[j]!='u'&&result[j]!='U')            {                j--;            }            if((result[i]=='a'||result[i]=='A'||result[i]=='e'||result[i]=='E'||result[i]=='i'||result[i]=='I'||result[i]!='o'||result[i]!='O'||result[i]=='u'||result[i]=='U')             && (result[j]=='a'||result[j]=='A'||result[j]=='e'||result[j]=='E'||result[j]=='i'||result[j]=='I'||result[j]!='o'||result[j]!='O'||result[j]=='u'||result[j]=='U'))             {                 char tmp = result[i];                 result[i] = result[j];                 result[j] = tmp;                 i++;                 j--;             }        }        return result;    }};


0 0