345. Reverse Vowels of a String
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".
思路:
找到元音字母,标記位置,進行置換。
代碼如下:
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
<code>// vowels(元音字母)包括:a,e,i,o,u. </code>
<code>class</code> <code>Solution {</code>
<code>public</code><code>:</code>
<code> </code><code>bool</code> <code>isVowels(</code><code>char</code> <code>c)</code>
<code> </code><code>{</code>
<code> </code><code>char</code> <code>vowels[10] = {</code><code>'a'</code><code>,</code><code>'e'</code><code>,</code><code>'i'</code><code>,</code><code>'o'</code><code>,</code><code>'u'</code><code>,</code><code>'A'</code><code>,</code><code>'E'</code><code>,</code><code>'I'</code><code>,</code><code>'O'</code><code>,</code><code>'U'</code><code>};</code>
<code> </code><code>for</code><code>(</code><code>int</code> <code>i = 0; i < 10; i++)</code>
<code> </code><code>{</code>
<code> </code><code>if</code><code>(c == vowels[i])</code>
<code> </code><code>{</code>
<code> </code><code>return</code> <code>true</code><code>;</code>
<code> </code><code>break</code><code>;</code><code>//return 和 break在一起都有反應麼?</code>
<code> </code><code>}</code>
<code> </code><code>}</code>
<code> </code><code>return</code> <code>false</code><code>;</code>
<code> </code><code>}</code>
<code> </code><code>string reverseVowels(string s) {</code>
<code> </code><code>vector<</code><code>int</code><code>> recordIndex;</code>
<code> </code><code>vector<</code><code>char</code> <code>> str;</code>
<code> </code><code>for</code><code>(</code><code>int</code> <code>i = 0;i<s.size();i++)</code>
<code> </code><code>str.push_back(s.at(i));</code>
<code> </code>
<code> </code><code>for</code><code>(</code><code>int</code> <code>i = 0; i < str.size() ; i++)</code>
<code> </code><code>if</code><code>( isVowels(str[i]) )</code>
<code> </code><code>recordIndex.push_back(i);</code>
<code> </code><code>for</code><code>(</code><code>int</code> <code>i = 0 ; i < recordIndex.size() / 2 ; i++)</code>
<code> </code><code>char</code> <code>left = str[recordIndex[i]];</code>
<code> </code><code>char</code> <code>right = str[recordIndex[recordIndex.size() - 1 - i]];</code>
<code> </code><code>str[recordIndex[i]] = right;</code>
<code> </code><code>str[recordIndex[recordIndex.size() - 1 - i]] = left;</code>
<code> </code><code>s = </code><code>""</code><code>;</code>
<code> </code><code>for</code><code>(</code><code>int</code> <code>i = 0 ; i < str.size() ; i++)</code>
<code> </code><code>s.append(1,str[i]);</code>
<code> </code><code>return</code> <code>s;</code>
<code>};</code>
<code></code>
本文轉自313119992 51CTO部落格,原文連結:http://blog.51cto.com/qiaopeng688/1835538