题目要求:写一个函数要求反转string字符串中的元音字母
实现思路:可以设置一个与输入字符串长度相等的整型数组num[s.size()],用来存储元音字母出现的位置,如“hello”中num[0]=1,num[1]=4,num数组中存储的元素个数就是string 字符串中的元音字母的个数。然后将num数组中所存储的值对应的字符串中的字符反转。
class Solution {
public:
string reverseVowels(string s) {
int l=s.size();
int num[l];
int v=0;
for(int i=0;i<l;i++){
if(isvowel(s[i])){
num[v]=i;
v++;
}
}
int lo=0;
int hi=v-1;
for(int i=lo,j=hi;i<j;i++,j--){
char c=s[num[j]];
s[num[j]]=s[num[i]];
s[num[i]]=c;
}
return s;
}
bool isvowel(char c){
switch(c)
{
case 'a':
case 'A':
case 'e':
case 'E':
case 'i':
case 'I':
case 'o':
case 'O':
case 'u':
case 'U': return true;
break;
default: return false;
}
}
};