6. ZigZag Conversion
来源:互联网 发布:科目二模拟软件 编辑:程序博客网 时间:2024/06/05 03:09
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"
.Subscribe to see which companies asked this question.
分析:zig-zag编码如下:
代码:
class Solution {
public:
string convert(string s, int numRows) {
int nsLen = s.length(),nFirst,nStrInd,nBlockLen;
if (nsLen <= nRows || nRows == 1)//判断序列长度是否超过行数或者行数是否为1
return s;
nBlockLen = 2 * nRows - 2;//将整个序列分块,计算每块的长度
nFirst = nBlockLen;//每行中第二个数据距离第一个数据的间隔
int nsBlock = nsLen / nBlockLen + 1;//计算块数
string sResult = "";
for (int nTemp = 0; nTemp < nRows; nTemp++){
sResult += s[nTemp];//将Z型中每行第一个符号添加到新建序列尾部
for(int nIndex = 0; nIndex < nsBlock; nIndex++){
nStrInd = nTemp + nBlockLen * nIndex + nFirst;
if (nFirst != 0 && nStrInd < nsLen && nStrInd >= 0){
sResult += s[nStrInd];
}
nStrInd = nTemp + nBlockLen * (nIndex + 1);
if(nFirst != nBlockLen && nStrInd < nsLen){
sResult += s[nStrInd];
}
}
nFirst = nFirst - 2;
}
return sResult;
}
};
- LeetCode 6. ZigZag Conversion
- LeetCode --- 6. ZigZag Conversion
- LeetCode 6.ZigZag Conversion
- [Leetcode] 6. ZigZag Conversion
- 6.ZigZag Conversion
- 6. ZigZag Conversion
- 6. ZigZag Conversion
- 【leetcode】6. ZigZag Conversion
- 6.ZigZag Conversion
- 6. ZigZag Conversion
- 6.ZigZag Conversion
- [LeetCode] 6.ZigZag Conversion
- LeetCode - 6. ZigZag Conversion
- 6. ZigZag Conversion
- 6. ZigZag Conversion
- 6.ZigZag Conversion(93.10%)
- 6. ZigZag Conversion
- [leetcode] 6. ZigZag Conversion
- 使用filezilla上传文件或者项目
- 算法设计Week5 LeetCode Algorithms Problem #122 Best Time to Buy and Sell Stock II
- 排序算法的总结
- RabbitMQ搭建与例子
- 离散余弦变换的性质
- 6. ZigZag Conversion
- Python爬虫(1)——基于BeautifulSoup爬取豆瓣电影信息
- mongodb的java驱动的简单使用
- Maven+Hibernate+JPA+Postgresql基础配置
- async的使用
- 续二,用RecyclerView来实现苹果后台样式的卡片布局
- Struts2学习笔记(一)
- 括号序列 || 动态树分治 bzoj1095【ZJOI2007】Hide 捉迷藏
- 【机房重构】关于调错:C#:VS2010 由于缺少调试目标"xx.exe"如何解决