美文网首页
[LeetCode] 6. ZigZag Conversion

[LeetCode] 6. ZigZag Conversion

作者: 弱花 | 来源:发表于2018-11-02 23:15 被阅读0次

    原题链接

    把字符串按照 ↓↗↓……的顺序,排列成一个 Z 形,返回 从左到右,按行读得的字符串。
    思路:
    建立一个二维数组来按行保存字符串。
    按照 ↓↗↓……的方向进行对每一行加入字符。

    太慢了这个解法,Runtime: 96 ms, faster than 3.61% of C++。

    class Solution
    {
    public:
      string convert(string s, int numRows)
      {
        if (numRows <= 1)
          return s;
        string res;
        string zigZag[numRows];
        int len = s.length();
        int dirc = 1; // 1表示方向向下,-1表示方向向上
        int index = 0;
        for (int i = 0; i < len; i++)
        {
          zigZag[index] += s[i];
          if (index == numRows - 1)
            dirc = -1;
    
          if (index == 0)
            dirc = 1;
          index += dirc;
        }
        for (int i = 0; i < numRows; i++)
        {
          cout << zigZag[i] << endl;
          res += zigZag[i];
        }
    
        return res;
      }
    };
    

    相关文章

      网友评论

          本文标题:[LeetCode] 6. ZigZag Conversion

          本文链接:https://www.haomeiwen.com/subject/xiyhxqtx.html