6. Z 字形变换

  1. class Solution {
  2. public String convert(String s, int numRows) {
  3. if (s == null || numRows <= 0 || s.equals(""))
  4. return "";
  5. if (numRows == 1)
  6. return s;
  7. List<StringBuilder> rows = new ArrayList<>();
  8. for (int index = 0; index < numRows; index++)
  9. rows.add(new StringBuilder());
  10. int flag = -1;
  11. int i = 0;
  12. for (char ch : s.toCharArray()) {
  13. rows.get(i).append(ch);
  14. if (i == 0 || i == numRows - 1)
  15. flag = -flag;
  16. i += flag;
  17. }
  18. StringBuilder ans = new StringBuilder();
  19. for (StringBuilder currRow : rows)
  20. ans.append(currRow);
  21. return ans.toString();
  22. }
  23. }