leetcode ZigZag Conversion

PS:边界条件判断不需要计算,用来比较判断就可以了。哎呀,自己还是太嫩啊,老是忘了比较这一招!!!!

代码:

 1 #include<iostream>

 2 #include<string>

 3 

 4 using namespace std;

 5 

 6 string convert(string s, int nRows)

 7 {

 8     if (nRows == 1)

 9         return s;

10     int L = s.length();

11     string result="";

12     for (int i = 0; i < nRows; i++)

13     {

14         if (i == 0||i==nRows-1)

15         {

16             int t = i;

17             while (t < L)

18             {

19                 result.append(1,s[t]);

20                 t = t + 2 * nRows - 2;

21             }

22         }

23         else

24         {

25             int t = i;

26             while (t<L)

27             {

28                 result.append(1, s[t]);

29                 int m = t + 2 * nRows - 2 - 2*i;

30                 if (m < L)

31                 {

32                     result.append(1,s[m]);

33                     t = t + 2 * nRows - 2;

34                 }

35                 else

36                     break;

37             }

38         }

39     }

40     return result;

41 }

42 

43 int main()

44 {

45     cout << convert("ABCDE", 4) << endl;

46 }

 

你可能感兴趣的:(conversion)