leatcode 6. ZigZag Conversion
来源:互联网 发布:淘宝刷手p图软件哪个好 编辑:程序博客网 时间:2024/06/06 15:54
一行字符串,按锯齿状来排列一遍,锯齿的深度是给定的rows,最后再按每行来读出来这个字符串,作为新的字符串。
字符串的规律:
0 2(numsRow-1) 4(numsRow-1)
。
i 2(numsRow-1)-i 2(numsRow-1)+i 4(numsRow-1)-i 4(numsRow-1)+i
。
numsRow-1 3(numsRow-1) 5(numsRow-1)
第0行和最后一行,都是间隔2(numsRow-1)=step
对于中间行:间隔也是step,需要读进来两种,一种是step-i step+i
class Solution {
/******
* 从s中读入字符,独到ret中,在返回ret;
* s长度分两种情况;
*s>rows时
* 分成几行,处理规律:
*****/
public:
string convert(string s, int numRows) {
string ret;
int step=2*(numRows-1);
if(s.size()<=numRows||numRows==1) return s;
//for(int i=0;i<s.size();i++){
//来一个字符,下面判断应该加在什么位置------------这样不行
// }
//直接找,每一行的内容 满足条件:
for(int row=0;row<numRows;row++){
int curIndex=row;
if(row==0||row==numRows-1){
while(curIndex<s.size()){
ret.push_back(s[curIndex]);
curIndex+=step;
}
}
//中间行
if(row>0&&row<numRows-1){
int secondIndex=step-curIndex;
while(curIndex<s.size()||secondIndex<s.size()){
if(curIndex<s.size()){
ret.push_back(s[curIndex]);
curIndex+=step;
}
if(secondIndex<s.size()){
ret.push_back(s[secondIndex]);
secondIndex+=step;
}
}
}
}
return ret;
}
};
- leatcode 6. ZigZag Conversion
- LeetCode 6. ZigZag Conversion
- LeetCode --- 6. ZigZag Conversion
- LeetCode 6.ZigZag Conversion
- [Leetcode] 6. ZigZag Conversion
- 6.ZigZag Conversion
- 6. ZigZag Conversion
- 6. ZigZag Conversion
- 【leetcode】6. ZigZag Conversion
- 6.ZigZag Conversion
- 6. ZigZag Conversion
- 6.ZigZag Conversion
- [LeetCode] 6.ZigZag Conversion
- LeetCode - 6. ZigZag Conversion
- 6. ZigZag Conversion
- 6. ZigZag Conversion
- 6.ZigZag Conversion(93.10%)
- 6. ZigZag Conversion
- 给Zabbix一件漂亮的衣服grafana-zabbix
- test
- Ionic 常见疑难杂症
- 安卓图片自适应
- 我用Python写自动刷代理服务IP的经过
- leatcode 6. ZigZag Conversion
- lightoj - 1193 - Dice (II) dp / 背包
- implement of deep neural network --- python
- Problem O
- Filter过滤器
- leetcode4:Median of Two Sorted Arrays
- 《第一行代码2》
- java中子类与父类的同名变量覆盖问题
- 【Spark】Spark基本概念