LeetCode ZigZag Conversion

来源:互联网 发布:免费淘宝店标在线制作 编辑:程序博客网 时间:2024/05/20 08:22

这题主要是读明白题意。本来打算用二维数组存储,然后对数组中元素赋值,通过横纵索引的规律一个一个的输出。所以把图画了下来,分别是row为2,3,4时的情况,后来一看似乎有规律可循,即所要的转化串与原始串之间有一定的对应规律,想了想,试了试,测试了一下边界条件,一下子就出来了,感觉自己的编程能力提高了,有木有?偷笑

string convert(string s, int nRows) {int i,j;int strlen = s.length();if (nRows==1){return s;}string tempstr="";for (int k=1,step=2*nRows-2;k<=nRows;k++,step-=2){i=k;j=i+step;if (k==1||k==nRows){while(i<=strlen){tempstr+=s[i-1];i+=2*nRows-2;}}else{while(i<=strlen||j<=strlen){if (i<=strlen){tempstr+=s[i-1];i+=2*nRows-2;}if (j<=strlen){tempstr+=s[j-1];j+=2*nRows-2;}}}}return tempstr;}