LeetCode 6Z 字形变换

Posted Visitor

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 6Z 字形变换相关的知识,希望对你有一定的参考价值。

题目链接

【题解】


还想着模拟这个过程。然后发现只有行有用啊!...
那就建个rows大小的字符串数组存每行从左到右的字符就行啦。。
然后就是i从1变到n然后又变回1反复就好了。
最后把1..rows按顺序首尾连接在一起就行

【代码】

class Solution {
public:
    string convert(string s, int numRows) {
        if (numRows==1) return s;
        string dic[5000];
        for (int i = 1;i <= numRows;i++) dic[i]="";
        dic[1] = dic[1]+s[0];
        int len = s.size();
        int row = 1;
        int flag = 1;
        for (int i = 1;i<=len-1;i++){
            row+=flag;
            if (row>numRows){ row = numRows-1;flag = -1;}
            if (row<=0) {row = 2;flag = 1;}
            dic[row]=dic[row]+s[i];
        }
        string temp = "";
        for (int i = 1;i <= numRows;i++){
            temp = temp + dic[i];
        }
        return temp;
    }
};

以上是关于LeetCode 6Z 字形变换的主要内容,如果未能解决你的问题,请参考以下文章

打卡算法 6Z字形变换 算法解析

LeetCode 6. Z 字形变换

Leetcode 6. Z 字形变换-中等(图)

Z字形变换 leetcode 6

LeetCode-006-Z 字形变换

[LeetCode] Z字形变换