关闭

leetcode 6. ZigZag Conversion

标签: leetcode
113人阅读 评论(0) 收藏 举报
分类:

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   N
A P L S I I G
Y   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".

 之字形转换,起初没搞清题意多测试几次后明白了,当nRows=4时,

 P     I     N      
  A   L S   I G        
   Y A   H R         
    P     I    
public class A6ZigZagConversion {

	public String convert(String s, int numRows) {
		if("".equals(s) || s == null || numRows <= 1)
			return s;
		StringBuffer[] ans = new StringBuffer[numRows];
		int i = 0, j;
		for(; i < numRows; i++) {
			ans[i] = new StringBuffer("");
		}
		i = 0;
		while(i < s.length()) {
			for(j = 0; i < s.length() && j < numRows; j++) {
				ans[j].append(s.charAt(i++));
			}
			for(j = numRows - 2; i < s.length() && j > 0; j--) {
				ans[j].append(s.charAt(i++));
			}
		}
		for(i = 1; i < numRows; i++) {
			ans[0].append(ans[i]);
		}
		return ans[0].toString();
    }
}


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:24789次
    • 积分:1154
    • 等级:
    • 排名:千里之外
    • 原创:92篇
    • 转载:11篇
    • 译文:0篇
    • 评论:4条
    文章分类
    最新评论