image.pngimage.png

解题思路

模拟

  1. public String convert(String s, int numRows){
  2. char[] chars = s.toCharArray();
  3. int len = chars.length;
  4. StringBuffer[] sb = new StringBuffer[numRows];
  5. for(int i=0;i<numRows;i++)
  6. sb[i] = new StringBuffer();
  7. int index = 0;
  8. while (index<len){
  9. //水平向下
  10. for(int idx = 0;idx<numRows&&index<len;idx++)
  11. sb[idx].append(chars[index++]);
  12. //斜向上
  13. for(int idx = numRows - 2;idx>=1&&index<len;idx--)
  14. sb[idx].append(chars[index++]);
  15. }
  16. for(int i=1;i<numRows;i++)
  17. sb[0].append(sb[i]);
  18. return sb[0].toString();
  19. }