力扣 题目06-Z 字形变换 心得

  • 题目


     

  • 题解


    这个题我并没有做出来 本来想着可能每个字符的位置有规律 所以想了快一个小时 

  • 如果你想看完整的题解可以跳转这里 是K神的方法 我也是看了这个才明白的

  • 下面是对这个题解的重新叙述

  • 代码


    #include <iostream>
    #include <string>
    #include <vector> 
    using namespace std;
    class Solution {
    public:
        string convert(string s, int numRows) {
            string ping;
            int shu = 0;
            int fan = 1;
            vector<string> res(numRows);
            if (numRows == 1) {//当行数为1直接返回本身就是
                return s;
            }
            for (int i = 0; i < s.length(); i++) {
                res[shu] = res[shu]+s[i];
                shu = shu + fan;
                if (shu==numRows-1||shu==0) {
                    fan = -fan;
                }
            }
            for (int b = 0; b < numRows; b++) {
                ping = ping + res[b];
            }
            cout << ping << endl;
            return s;
        }
    };
    int main() {
        Solution sol;
        string s = "PAYPALISHIRING";
        s=sol.convert(s, 3);
    }

     

  • 心得


    我在每个字符上花了很多时间找它们的规律,但是如果能够多画图看一下的话,说不定能发现这个规律

posted @ 2022-03-22 16:21  无聊的阿库娅  阅读(27)  评论(0编辑  收藏  举报