Skip to content

Commit 0732437

Browse files
authored
Added reverse_vowels.cpp
1 parent 48cca97 commit 0732437

File tree

1 file changed

+66
-0
lines changed

1 file changed

+66
-0
lines changed

leet_code_problems/reverse_vowels.cpp

+66
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
/*
2+
* Write a function that takes a string as input and reverse only the vowels of a string.
3+
*
4+
* Example 1:
5+
* Given s = "hello", return "holle".
6+
*
7+
* Example 2:
8+
* Given s = "leetcode", return "leotcede".
9+
*
10+
* Note:
11+
* The vowels does not include the letter "y".
12+
*/
13+
14+
#include <iostream>
15+
#include <algorithm>
16+
17+
bool isVowel(char c)
18+
{
19+
return (c == 'a' || c == 'e' ||
20+
c == 'i' || c == 'o' ||
21+
c == 'u' || c == 'A' ||
22+
c == 'E' || c == 'I' ||
23+
c == 'O' || c == 'U');
24+
}
25+
26+
std::string reverseVowels(std::string s)
27+
{
28+
if (s.length() == 0)
29+
{
30+
return s;
31+
}
32+
33+
unsigned int i = 0;
34+
unsigned int j = s.length() - 1;
35+
while (i < j)
36+
{
37+
while (i < j && !isVowel(s[i]))
38+
{
39+
i++;
40+
}
41+
42+
while (i < j && !isVowel(s[j]))
43+
{
44+
j--;
45+
}
46+
47+
if (i < j)
48+
{
49+
std::swap(s[i], s[j]);
50+
++i;
51+
--j;
52+
}
53+
}
54+
55+
return s;
56+
}
57+
58+
int main()
59+
{
60+
std::string str;
61+
std::cout << "Please enter input string: ";
62+
std::cin >> str;
63+
std::cout << "Expected output string: " << reverseVowels(str) << std::endl;
64+
65+
return 0;
66+
}

0 commit comments

Comments
 (0)