首页 > 代码库 > leetcode6 Zigzag Conversion
leetcode6 Zigzag Conversion
题目要求:
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)。
完整代码如下:
<script src="https://code.csdn.net/snippets/579034.js" type="text/javascript"></script>
leetcode6 Zigzag Conversion
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。