• 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;
    }
    







  • 相关阅读:
    window安装php的mongodb扩展
    Android NDK开发步骤(r9)
    osgViewer销毁bug
    C/C++ typedef用法
    Java并发编程:Lock
    java中构造器(Constructor)
    进程和线程关系及区别
    Java总结篇系列:Java泛型
    在powerdesigner中创建物理数据模型
    非常好的理解遗传算法的例子
  • 原文地址:https://www.cnblogs.com/gavanwanggw/p/6995166.html
Copyright © 2020-2023  润新知