-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathReverse Vowels of a String.js
50 lines (44 loc) · 1.05 KB
/
Reverse Vowels of a String.js
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/*Write a function that takes a string as input and reverse only the vowels of a string.
Example 1:
Given s = "hello", return "holle".
Example 2:
Given s = "leetcode", return "leotcede".
Note:
The vowels does not include the letter "y".*/
/**
* @param {string} s
* @return {string}
*/
var reverseVowels = function(s) {
if(s == '' )
return s
letters = s.split('')
i = 0
j = letters.length-1
while(letters[i] && !isVowel(letters[i]))
i++
while(letters[i] && !isVowel(letters[j]))
j--
while(i<j){
letters = swap(letters,i,j)
i++
j--
while(letters[i] && !isVowel(letters[i]))
i++
while(letters[i] && !isVowel(letters[j]))
j--
}
return letters.join('')
};
var isVowel = function(letter){
if(letter.match(/[a-zA-Z]/i) == null)
return false
vowels = ['a','A','e','E','i','I','o','O','u','U']
return vowels.indexOf(letter) != -1
}
var swap = function(arr,i,j){
temp = arr[i]
arr[i] = arr[j]
arr[j] = temp
return arr
}