码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode6 Zigzag Conversion

时间:2015-01-13 19:57:52      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:java   leetcode   数据结构   

题目要求:

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"

    采用坐标转换的方式来做这道题。我们现在以nRows=4来考虑,其实对于每一行,如果暂时不考虑中间的列,只考虑全满的列,则后面一个坐标都是前面的基础上加上2*(nRows-1),如0->6->12,1->7->13,2->8,3->9,因此,对于第i=0行和i=nRows行,直接按照这样的坐标转换读入,而对于中间行,每次按照这样的规律读入一个字符后,需要再追加一个字符,1->5,2->4。这个坐标转换的规律是什么呢,对于0->6,是一个nRows=4的zigzag,同理,对于1->5,2->4,则分别是nRows=3,nRows=2的zigzag,即,第i行,坐标增加的规律为前一个坐标的基础上增加2*(nRows-1-i)。

技术分享
技术分享

完整代码如下:


leetcode6 Zigzag Conversion

标签:java   leetcode   数据结构   

原文地址:http://blog.csdn.net/u010691636/article/details/42679413

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!