leetcode 6 ZigZag Conversion(水题)
就是简单的模拟一下就可以了。但是我一开始是用一个二维char数组来存的,这样在最终扫全体时会扫很多空的位置,浪费了很多时间,所以就time limit error了。
所以改进一下就用string数组来存。其实可以发现,这个表我们需要的每一行的相对位置,而对于每一列的相对位置根本就无所谓,可以横向随便“拉伸”这个表。
class Solution { public: string convert(string s, int numRows) { const int n=numRows; if(n==1)return s; string str[n]; int len=s.length(); int row=0,k=1; for(int i=0;i<len;i++){ str[row]+=s[i]; row+=k; if(row>=n){ k=-1; row-=2; } else if(row<0){ k=1; row+=2; } }//end of for s.clear(); for(int i=0;i<n;i++){ s.append(str[i]); } return s; } };