zoukankan      html  css  js  c++  java
  • LeetCode 06 ZigZag Conversion

    https://leetcode.com/problems/zigzag-conversion/


    水题纯考细心

    题目:依照Z字形来把一个字符串写成矩阵,然后逐行输出矩阵。

    O(n)能够处理掉

    记i为行数

    第0行和第numRow-1行。 ans += str[i+k*(numRows*2-2)], k=0,1,2,...

    其它, 每一个Z字形(事实上仅仅是一竖一斜两条线)须要加上两个,下标见代码。


    特殊处理:numRows=1的时候numRows*2-2==0 ,会死循环的。另外numRows=1的时候直接输出即可


    #include <cstdio>
    #include <cstring>
    #include <iostream>
    using namespace std;
    
    class Solution {
    public:
        string convert(string s, int numRows) {
            string ret;
            if(numRows == 1){
                return s;
            }
            for(int i=0; i<numRows; i++){
                if(i == 0 || i == numRows-1){
                    int j=i;
                    while(j<s.size()){
                        ret = ret + s[j];
                        j += numRows*2-2;
                    }
                }else{
                    int j=i;
                    while(j<s.size()){
                        ret = ret + s[j];
                        if(j+numRows*2-2-(i*2) < s.size())ret = ret + s[j+numRows*2-2-(i*2)];
                        j += numRows*2-2;
                    }
                }
    
    
            }
            return ret;
        }
    };
    
    int main(){
        string s;
        int numRows;
        Solution sol;
        while(cin >> s >> numRows){
            cout << sol.convert(s, numRows) << endl;
        }
        return 0;
    }
    







  • 相关阅读:
    测试
    pytest -- Windows fatal exception: code 1073807366
    cookie绕过验证码登录操作
    python接口自动化基本流程
    测试-pytest框架
    测试
    flask框架
    阿里巴巴集团面试
    字节跳动一面
    mysql 存储引擎
  • 原文地址:https://www.cnblogs.com/gavanwanggw/p/6995166.html
Copyright © 2011-2022 走看看