反转字符串中的元音字母。题干即是题意。例子,
Example 1:
Input: "hello" Output: "holle"Example 2:
Input: "leetcode" Output: "leotcede"
思路基本同344题。不同之处在于344题要求不能使用额外空间,但是本题非得使用额外空间才能解决,不仅需要hashset,也需要将input先转成数组才能判断。
时间O(n)
空间O(n) - hashset
1 /** 2 * @param {string} s 3 * @return {string} 4 */ 5 var reverseVowels = function (s) { 6 // corner case 7 if (s === null || s.length === 0) return ''; 8 9 // normal case 10 let res = s.split(''); 11 let vowels = new Set(['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U']); 12 let left = 0; 13 let right = s.length - 1; 14 while (left < right) { 15 while (left < right && !vowels.has(res[left])) { 16 left++; 17 } 18 while (left < right && !vowels.has(res[right])) { 19 right--; 20 } 21 let temp = res[left]; 22 res[left] = res[right]; 23 res[right] = temp; 24 left++; 25 right--; 26 } 27 return res.join(''); 28 };
来源:https://www.cnblogs.com/aaronliu1991/p/12424473.html