天天看點

leetCode 345. Reverse Vowels of a String 字元串

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 &lt; 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&lt;</code><code>int</code><code>&gt; recordIndex;</code>

<code>        </code><code>vector&lt;</code><code>char</code> <code>&gt; str;</code>

<code>        </code><code>for</code><code>(</code><code>int</code> <code>i = 0;i&lt;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 &lt; 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 &lt; 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 &lt; 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

繼續閱讀