力扣6. Z 字形变换

Posted 幽殇默

tags:

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

在这里插入图片描述
https://leetcode-cn.com/problems/zigzag-conversion/
找规律的题:本质和弹弹球一样的,到底又回来,到顶又下去。

class Solution {
public:
    string convert(string s, int numRows) {
        string ss[1005];
        int cnt=0;
        int k=0;
        bool flag=true;
        if(numRows==1) return s;//特殊情况
        while(cnt<s.size())
        {
            ss[k]+=s[cnt];
            cnt++;
            if(flag) k++;
            else k--;
            if(k<0)  flag=true,k=1;//到底
            if(k==numRows)flag=false,k=numRows-2;//到顶
        }
        string ans;
        for(int i=0;i<numRows;i++) ans+=ss[i];
        return ans;
    }
};

方法二:
在这里插入图片描述

class Solution {
public:
    string convert(string s, int n) {
        string ans;
        if(n==1) return s;
        for(int i=0;i<n;i++)
        {
            if(i==0||i==(n-1))
            {
                for(int j=i;j<s.size();j+=2*n-2) ans+=s[j];
            }
            else
            {
                for(int j=i,k=2*(n-1)-i;j<s.size()||k<s.size();j+=2*n-2,k+=2*n-2)
                {
                    if(j<s.size()) ans+=s[j];
                    if(k<s.size()) ans+=s[k];
                }
            }
        }
        return ans;
    }
};

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

6. Z 字形变换(leetcode力扣算法 - java / rust)

6. Z 字形变换(leetcode力扣算法 - java / rust)

LeetCode 6. Z 字形变换

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

Z字形变换 leetcode 6

LeetCode6.Z字形变换(图解算法)