LeetCode 6 ZigZag Conversion

来源:互联网 发布:旅行消费数据报告 编辑:程序博客网 时间:2024/04/29 21:22

The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility)

P   A   H   NA P L S I I GY   I   R
And then read line by line: "PAHNAPLSIIGYIR"

Write the code that will take a string and make this conversion given a number of rows:

string convert(string text, int nRows);
convert("PAYPALISHIRING", 3) should return "PAHNAPLSIIGYIR".
思路 :模拟人生成每行的字符串,然后把每行的字符串拼接起来即可。
public class Solution {public String convert(String s, int nRows) {if (nRows == 1 || s.length() == 0)return s;boolean flag = false;// 标记生产字符的方向StringBuffer[] sb = new StringBuffer[nRows];for (int i = 0; i < nRows; i++)sb[i] = new StringBuffer("");for (int i = 0, j = 0; i < s.length(); i++) {sb[j].append(s.charAt(i));if (j == nRows - 1)flag = true;else if (j == 0)flag = false;if (!flag)j++;elsej--;}for (int i = 1; i < nRows; i++)sb[0].append(sb[i]);return sb[0].toString();}}


0 0
原创粉丝点击