題目:Reverse Vowels of a String
難度:Easy
題目要求要交換母音位置,使用 two pointer 方法,一個在頭一個在尾
要注意的是題目有說字串 consist of printable ASCII characters
,所以母音字串表要包含大寫及小寫的字母
因會遍歷整個字串一次.故時間複雜度為 O(N),N 為字串長度;因有用一個矩陣儲存結果,故空間複雜度為 O(N),N 為字串長度
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| public class Solution { public string ReverseVowels(string s) { char[] word = s.ToCharArray(0,s.Length); int start = 0; int end = s.Length - 1; String vowels = "aeiouAEIOU";
while (start < end) { while (start < end && vowels.Contains(word[start]) == false) { start++; }
while (start < end && vowels.Contains(word[end]) == false) { end--; }
char tmp = word[end]; word[end] = word[start]; word[start] = tmp;
start++; end--; }
var ans = new String(word); return ans; } }
|