LeetCode-ZigZagConversion

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

题目:

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

思路:

我是通过找规律找到每一行应该取哪个字符。

packagestring;publicclassZigZagConversion {publicString convert(String s,intnumRows) {if(s ==null|| numRows == 1)returns;intgap = 2 * (numRows - 1);intlen =s.length();

StringBuilder sb=newStringBuilder("");for(inti = 0; i < numRows; ++i) {for(intj = i; j < len; j +=gap) {

sb.append(s.charAt(j));intnext = j + 2 * (numRows - i - 1);if(i != 0 && i != numRows - 1 && next <len)

sb.append(s.charAt(next));

}

}returnsb.toString();

}publicstaticvoidmain(String[] args) {//TODO Auto-generated method stubString s = "A";

ZigZagConversion z=newZigZagConversion();

System.out.PRintln(z.convert(s,1));

}

}

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航