LeetCode ZigZag Conversion

来源:互联网 发布:java 泛型实现通用dao 编辑:程序博客网 时间:2024/06/17 04:01

这几天开始要把前面没有刷完的水题继续刷掉了

Description:

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".

Solution:

水题

记得Zigzag的方向是从下到上,也就是这样

a g

b fh

c ei

d j


public class Solution {public String convert(String s, int numRows) {int n = s.length();int times = 2 * numRows - 2;if (n == 0)return "";if (numRows == 1)return s;StringBuilder stb = new StringBuilder();for (int i = 0; i < numRows; i++) {for (int j = 0; j < n; j++) {if (j % times == i || j % times == times - i) {stb.append(s.charAt(j));}}}return stb.toString();}}



0 0
原创粉丝点击