題目: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;     } }
  |