解題思路: 算是我寫到現在最水的一題,把zigzag的圖畫一次,就會發現排在第幾列和mod有關,因此能得知元素在第幾列,逐一加進答案字串,即所求,複雜度O(n),其中n為字串長度
C++ code 如下:
class Solution { public: string convert(string s, int numRows) { if(numRows==1) return s; else { string ans=""; int len=s.size(); for(int i=0;i<numRows;i++) { for(int j=0;j*2*(numRows-1)+i<len;j++) { if(i&&i!=(numRows-1)) { ans+=s[j*2*(numRows-1)+i]; if((j+1)*2*(numRows-1)-i<len) ans+=s[(j+1)*2*(numRows-1)-i]; } else ans+=s[j*2*(numRows-1)+i]; } } return ans; } } };
沒有留言:
張貼留言