LeetCode---ZigZag Conversion

来源:互联网 发布:高丝 艾文莉 知乎 编辑:程序博客网 时间:2024/06/07 07:33

题目大意:给出一个字符串和行号,其实按ZigZag模式排列的输出其转化后的排列方式。

ZigZag的排列规律:


算法思想:

设置一个string[rowNums]数组,和一个方向标记,通过方向标记将字符串写入string[rownums]中,然后将其拼接起来即是转换结果。方向分为向下和向上,向下时按行号递增的方式填写数组触碰到边界改变方向,向上时按对角线规律填写数组,遇到上边界改变方向。

代码如下:

class Solution {public:    string convert(string s, int numRows) {          if(numRows<=1) return s;    string res;         string subres[numRows];         int i=0,k=0;         bool isDown=true;         while(k<s.length()){         if(isDown){             subres[i].push_back(s[k++]);if(i==numRows-1)     isDown=false;else     ++i; } else{ subres[--i].push_back(s[k++]); if(i==0)     { isDown=true; ++i;   } } } for(i=0;i<numRows;++i)    res+=subres[i];return res;    }};


0 0
原创粉丝点击