Skip to content

Instantly share code, notes, and snippets.

@tobi-bams
Created August 11, 2021 18:58
Show Gist options
  • Save tobi-bams/f70465f0dbfda1dcbc066c2be4f53b47 to your computer and use it in GitHub Desktop.
Save tobi-bams/f70465f0dbfda1dcbc066c2be4f53b47 to your computer and use it in GitHub Desktop.
const reverseVowels = (word) => {
if (typeof word !== 'string') return "Invalid Input Parameter";
let start = 0;
let end = word.length - 1;
let vowels = {
a: true,
e: true,
i: true,
o: true,
u: true,
A: true,
E: true,
I: true,
O: true,
U: true,
};
let arrayOfLetter = [...word];
while (start <= end) {
let placeholder = null;
if (vowels[arrayOfLetter[start]] && vowels[arrayOfLetter[end]]) {
placeholder = arrayOfLetter[start];
arrayOfLetter[start] = arrayOfLetter[end];
arrayOfLetter[end] = placeholder;
start++;
end--;
} else if (vowels[arrayOfLetter[start]] && !vowels[arrayOfLetter[end]]) {
end--;
} else if (vowels[arrayOfLetter[end]] && !vowels[arrayOfLetter[start]]) {
start++;
} else {
start++;
end--;
}
}
return arrayOfLetter.join("");
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment