6、ZigZag Conversion
2015-12-05 17:06
267 查看
题目:
The string
this: (you may want to display this pattern in a fixed font for better legibility)
And then read line by line:
Write the code that will take a string and make this conversion given a number of rows:
return
解题思路:
要理解题目说的意思,虽然对于没有相关背景的人可能会理解错误。下面一图便能解释清楚。
c++版本:
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".
解题思路:
要理解题目说的意思,虽然对于没有相关背景的人可能会理解错误。下面一图便能解释清楚。
0 | 8 | 16 | |||||||||
1 | 7 | 9 | 15 | 17 | |||||||
2 | 6 | 10 | 14 | 18 | |||||||
3 | 5 | 11 | 13 | 19 | |||||||
4 | 12 | 20 |
class Solution { public: string convert(string s, int numRows) { int index=0,row=0,add_v=1; string ans = ""; string res[numRows]; if(numRows==1)return s; while(index<s.size()) { res[row] += s[index]; if(row==0) add_v=1; if(row==numRows-1) add_v = -1; index++; row += add_v; } for(int i=0;i<numRows;i++) ans += res[i]; return ans; } };python版本:
class Solution(object): def convert(self, s, numRows): """ :type s: str :type numRows: int :rtype: str """ index,row,add_v = 0,0,1 res = [] ans = "" for i in range(numRows): res.append([]) if(numRows==1):return s while index<len(s): res[row].append(s[index]) if(row==0): add_v = 1 elif(row==numRows-1): add_v = -1 row += add_v index += 1 for l in res: for c in l: ans += c return ans
相关文章推荐
- 151205http调试工具Charles Proxy用法详解
- xutils 图片缓存-读取缓存数据
- Google_FaceDetetor CameraHal 实现
- 在Fedora 22下安装配置RealVNC Server 5.2.3的经验总结
- 动态路由各配置格式总结(ripV2、ospf、eigrp、bgp、IS-IS)
- (Android)五分钟让你轻松学会下拉刷新和上拉加载更多
- 两个栈实现队列
- TS科普23 ES PES TS关系
- android okhttp封装使用
- 操作系统习题与答案
- Linux_shell_ grep && awk && sed
- JS按钮控制内容左右滚动
- Timus Online Judge 1577 E-mail(字符串DP)
- jQuery插件开发模式
- EXTJS表格编辑控件验证
- fourcc的涵义以及在C++编程中的实现
- mysql 主从配置
- 高中数学必修3 之 算法初步 和 统计
- 求传递闭包Warshall算法代码实现
- 线/进程所持有资源以及子线/进程所继承资源