LeetCode算法题python解法:6. ZigZag Conversio…
2018-08-26 17:31: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)
中文理解大概就是给定一个字符串和一个数字,将字符串填入倒Z形输入字符串,然后按照列读取字符,得到一个新的字符,输出这个字符。
例如:字符串"PAYPALISHIRING",3
1 P A H N 2 A P L S I I G 3 Y I R
我的解题思路把这个倒Z型拉直,不难发现字符串对应的行数分别是1232123.......,我们需要两个变量,一个索引‘’ i‘’ ,用来讲对应字符添加到第n行,还有一个用来控制方向 ‘’n‘’,小于 行数最大值则n+1,等于最大值时则换个方向 n -= 1,索引 i 则一直往上加,直到取满整个字符串。
我的解题代码如下,有很多地方可以优化,只是提供大概思路:
1 class Solution(object): 2 def convert(self, s, numRows): 3 if numRows == 1: 4 return s 5 ldict = {} 6 for i in range(1,numRows+1): 7 ldict[i] = '' 8 n = 1 9 i = 0 10 while i < len(s): 11 while n < numRows: 12 if i == len(s): 13 break 14 ldict[n] += s[i] 15 n +=1 16 i +=1 17 while n > 1: 18 if i == len(s): 19 break 20 ldict[n] += s[i] 21 n -= 1 22 i += 1 23 out = '' 24 for i in ldict.values(): 25 out +=i 26 return out
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:python应用:异常处理
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- 小白如何入门 Python 爬虫? 2019-08-13
- python_字符串方法 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash