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







  • 相关阅读:
    团队项目—第二次冲刺计划
    第一阶段冲刺总结
    团队绩效评估
    回复其他小组对我们的评价
    软件项目评价
    maven 之分模块构建web项目 及 聚合与继承特性
    Log4j 使用总结
    freemarker 总结
    freemarker入门 之 脱离容器实现hello word
    读取txt文件 统计“java”出现的次数(大小写不敏感)
  • 原文地址:https://www.cnblogs.com/gavanwanggw/p/6995166.html
Copyright © 2011-2022 走看看