今天是堅持寫題解的第12天,

代碼細節
可以寫一個函式避免if陳述句過長的尷尬,
C語言代碼實作
較易,省略解題思路,
int choose(char c);
char* reverseVowels(char* s) {
int len = strlen(s);
int left = 0, right = len - 1;
while (left < right) {
int cntl = 0, cntr = 0;
if (choose(s[left])){
cntl++;
}
if (choose(s[right])){
cntr++;
}
if (cntl ==1&&cntr==1 ) {
int temp = s[left];
s[left] = s[right];
s[right] = temp;
left++;
right--;
continue;
}
if (cntl == 1) {
right--;
continue;
}
else if (cntr == 1) {
left++;
continue;
}
left++;
right--;
}
return s;
}
int choose(char c) {
return c == 'a' || c == 'A' ||
c == 'e' || c == 'E' ||
c == 'i' || c == 'I' ||
c == 'o' || c == 'O' ||
c == 'u' || c == 'U';
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/374635.html
標籤:其他
