Skip to content

Commit 35994ff

Browse files
committed
practice
1 parent 660e4d8 commit 35994ff

1 file changed

Lines changed: 37 additions & 0 deletions

File tree

javascript/index.js

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1162,3 +1162,40 @@ var specialTriplets = function(nums) {
11621162

11631163

11641164

1165+
/**
1166+
* 345. Reverse Vowels of a String
1167+
*
1168+
* 找出所有母音(不分大小寫),其餘子音維持原位,唯獨反轉母音
1169+
* @param {string} s
1170+
* @return {string}
1171+
*/
1172+
var reverseVowels = function(s) {
1173+
let vowels = ["a","e","i","o","u","A","E","I","O","U"];
1174+
let splitS = s.split("");
1175+
// 2 pointer?
1176+
let j = splitS.length - 1,i = 0;
1177+
while(i < j){
1178+
if(!vowels.includes(splitS[i],i)){
1179+
i++;
1180+
continue;
1181+
}
1182+
if(!vowels.includes(splitS[j],j)){
1183+
j--;
1184+
continue;
1185+
}
1186+
let char = splitS[i];
1187+
splitS[i] = splitS[j];
1188+
splitS[j] = char;
1189+
i++;
1190+
j--;
1191+
}
1192+
return splitS.join("");
1193+
};
1194+
let s = "IceCreAm";
1195+
/**
1196+
* Output: "AceCreIm"
1197+
* Explanation:
1198+
* The vowels in s are ['I', 'e', 'e', 'A']. On reversing the vowels, s becomes "AceCreIm".
1199+
*
1200+
*/
1201+
console.log(reverseVowels(s));

0 commit comments

Comments
 (0)