天天看點

leetCode 6. ZigZag Conversion 字元串 (上傳費勁)

6. ZigZag Conversion

題目:https://leetcode.com/problems/zigzag-conversion/

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

<code>string convert2(string s, </code><code>int</code> <code>numRows) {</code>

<code>    </code><code>if</code> <code>(s.length() &lt; 2 || numRows &lt; 2)</code>

<code>        </code><code>return</code> <code>s;</code>

<code>    </code><code>int</code> <code>cycle = 2 * numRows - 2;</code>

<code>    </code><code>string tmp;</code>

<code>    </code><code>string result;</code>

<code>    </code><code>for</code> <code>(</code><code>int</code> <code>i = 0; i &lt; numRows; i++)</code>

<code>    </code><code>{</code>

<code>        </code><code>if</code> <code>(i == 0 || i == numRows - 1)</code>

<code>        </code><code>{</code>

<code>            </code><code>for</code> <code>(</code><code>int</code> <code>j = 0; j &lt; s.length(); j += cycle)</code>

<code>            </code><code>{</code>

<code>                </code><code>if</code> <code>(i + j &lt; s.length())</code>

<code>                    </code><code>tmp += s.at(i+j);</code>

<code>            </code><code>}</code>

<code>            </code><code>result += tmp;</code>

<code>            </code><code>cout &lt;&lt; tmp &lt;&lt; endl;</code>

<code>            </code><code>tmp.clear();</code>

<code>        </code><code>}</code>

<code>        </code><code>else</code>

<code>            </code><code>int</code> <code>minus = numRows - i - 1;</code>

<code>            </code><code>int</code> <code>j, j1;</code>

<code>            </code><code>bool</code> <code>find = </code><code>false</code><code>;</code>

<code>            </code><code>for</code> <code>(j = i, j1 = 0; j &lt; s.length(); j += cycle, j1 += cycle)</code>

<code>                </code><code>tmp += s.at(j);</code>

<code>                </code><code>if</code> <code>(!find)</code>

<code>                </code><code>{</code>

<code>                    </code><code>j1 = j + 2 * minus;</code>

<code>                </code><code>}</code>

<code>                </code> 

<code>                </code><code>if</code> <code>(j1 &lt; s.length())</code>

<code>                    </code><code>tmp += s.at(j1);</code>

<code>    </code><code>}</code>

<code>    </code><code>return</code> <code>result;</code>

<code>}</code>

2016-08-08 20:30:52

本文轉自313119992 51CTO部落格,原文連結:http://blog.51cto.com/qiaopeng688/1835791