ZigZag Conversion
来源:互联网 发布:淘宝详情页免费模板 编辑:程序博客网 时间:2024/06/14 09:31
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 RAnd 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"
.Subscribe to see which companies asked this question
package leetcode;/** * 很容易看出外层的循环周期; * 若s="0123456789",当numRows=3时,打印出 048/159/26 * 当numRows=4时,打印出06/17/28/39 * 故循环周期是cyc=2*numRows-2; * 对于首行和末行之间的行,期间还有一个周期,这一次距离本周期起始字符的距离是 2*nRows-2-2*i * @author Mouse * */public class Solution {public static String convert(String s, int numRows) {// 获得s字符串的长度int len = s.length();if (len<=2||numRows==1) {return s;}String str="";int cyc=2*numRows-2;//循环周期for (int i = 0; i < numRows; i++) {for (int j = i; j <len; j+=cyc) {str+=s.charAt(j);if (i>0&&i<numRows-1) {//非首行和末行时还要加一个int t=j+cyc-2*i;if (t<len) {str+=s.charAt(t);}}}}return str;}public static void main(String[] args) {convert("0123456789", 3);}}
0 0
- ZigZag Conversion
- ZigZag Conversion
- ZigZag Conversion
- Zigzag Conversion
- ZigZag Conversion
- ZigZag Conversion
- ZigZag Conversion
- ZigZag Conversion
- ZigZag Conversion
- ZigZag Conversion
- ZigZag Conversion
- ZigZag Conversion
- ZigZag Conversion
- ZigZag Conversion
- ZigZag Conversion
- ZigZag Conversion
- ZigZag Conversion
- ZigZag Conversion
- 开源全能播放器Vitamio的使用
- AsyncTask介绍及源码执行过程分析
- memmove 和 memcpy的区别
- 操作系统页面置换FIFO算法中的Belady现象
- Android studio 关联源代码
- ZigZag Conversion
- 玲珑杯”ACM比赛 Round #5 --2的幂次方
- Linux下实现定时器Timer的几种方法
- oracle12c与之前版本的区别(仅供参考)
- 延时截屏的使用
- 快速跳选View,与列表视图搭配使用
- 初出茅庐的程序员,需要学习什么
- windows核心编程-用户权限
- 【设计模式】概览