leetcode 6 ZigZag Conversion
来源:互联网 发布:随机算法基本思想 编辑:程序博客网 时间:2024/05/09 22:57
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"
.z字形填字母,推导一个简单的关系就行了
第一行和最后一行在拐点处只有一个字母,所以特殊处理;
中间的每一行按奇偶列处理,首先(cnt-1)*(numRows-1)是不论哪一列都必须有的;
然后奇数列从上往下填,偶数列从下往上填,详见代码;
class Solution {public: string convert(string s, int numRows) { if(numRows==1) return s;//只有一行特判,否则下面第一行和最后一行会重复两次 int len=s.length(),now=0; string result; while(now<len)//第一行 { result+=s[now]; now+=(2*numRows-2); } for(int i=1;i<numRows-1;i++) { now=0; int cnt=0; while(now<len) { cnt++; if(cnt%2) now=(cnt-1)*(numRows-1)+i;//从上往下 else now=(cnt-1)*(numRows-1)+numRows-i-1;//从下往上 if(now>=len) continue; // cout<<now<<endl; result+=s[now]; } } now=numRows-1; while(now<len)//最后一行 { result+=s[now]; now+=(2*numRows-2); } return result; }};
1 0
- LeetCode 6 - ZigZag Conversion
- LeetCode 6: ZigZag Conversion
- LeetCode(6)ZigZag Conversion
- Leetcode【6】:ZigZag Conversion
- [leetcode 6] ZigZag Conversion
- LeetCode 6 ZigZag Conversion
- LeetCode(6) ZigZag Conversion
- [Leetcode] 6 - ZigZag Conversion
- LeetCode 6:《ZigZag Conversion》
- [leetcode 6] ZigZag Conversion
- LeetCode | #6 ZigZag Conversion
- [leetcode] 6 ZigZag Conversion
- leetCode #6 ZigZag Conversion
- leetcode 6 ZigZag Conversion
- leetcode-6 ZigZag Conversion
- leetcode 6 ZigZag Conversion
- LeetCode 6 - ZigZag Conversion
- leetcode 6ZigZag Conversion
- 贪心算法(hdu 4442 hdu 3183)
- 做的多了,自然就有收获了
- 嵌入式复习11
- ajax登录
- pku2441Arrange the Bulls
- leetcode 6 ZigZag Conversion
- Python学习笔记1---推导列表
- 禁用网卡导致连接ESXI服务器超时
- iOS漏洞可导致Apple ID被盗 – iOS 9修复三处安全漏洞
- source insight 无法查找与跳转和恢复默认设置
- Oracle监听器静态注册和动态注册总结
- websocket客户端应用程序
- Spring MVC Rest 学习 一
- HDU 1799 循环多少次?