[LeetCode] 6. ZigZag Conversion
题目
ZigZag Conversion | LeetCode OJ
描述
把给定的字符串按照指定行数的 Z 字形图案写出来,然后返回其按水平行读取的结果字符串。
举例
若给定字符串 PAYPALISHIRING,行数为 3,那么,它对应的 Z 字形图案应该是:
P A H N A P L S I I G Y I R
,那么,函数应该返回字符串:PAHNAPLSIIGYIR。
思路
(暂无)
代码
class Solution { public: string convert(string s, int nRows) { int n = s.size(); if(n==0) return string(); if(nRows<=0) return string(); if(nRows==1) return s; string str; for(int i=0; i<nRows; i++){ if(i==0 || i==nRows-1){ int index = i; while(index < n){ str += s[index]; index += nRows*2-2; } } else{ int index = i; while(index < n){ str += s[index]; int next = index + (nRows*2-2) - i*2; if(next < n) str += s[next]; index += nRows*2-2; } } } return str; } };