leetcode刷题:The string "PAYPALISHIRING"
来源:互联网 发布:苹果cms解析百度云 编辑:程序博客网 时间:2024/06/08 22:05
题目描述: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”.
Therefore, s = ABCD, row = 2, can be arranged as:
A….C
…B….D
由于原题对于题目描述不太清楚,我照着disscuss里面加了一个例子描述,方便阅读。
首先是我自己的代码:
/****************************************/
string s = “ABC”;
int numRows = 2 ;
if (s.size() == 1)
{
cout << s.size();
return 0;
}
string str;
int num2 = numRows / 2;
char ch[1000][1000];
int row = 0;
int i = 0;
for (int i = 0; i < 200; i++)
{
for (int j = 0; j < 200; j++)
{
ch[i][j] = ’ ‘;
}
}
while (i < s.size())
{
for (int j = 0; j < numRows; j++, row++) { ch[j][row] = s[i]; i++; }}i = 0;while (i<s.size()){ for (int k = 0; k<numRows; k++) { int j = 0; int temp = 0; while(temp < 2) { if (ch[k][j] == ' ' || ch[k][j] == '\0') { j++; temp++; continue; } else { temp = 0; str += ch[k][j]; i++; j++; } } }}return str;/*****************************************/写的很烂,思路很简单,就是用一个二维数组模拟一遍题目的转换过程,先竖着存入,然后横着读出,但是应该是由于我的二维数组范围的问题,导致不通过。然后我看了下disscuss里面大神的算法。/******************************************************/string s = "ABC";int nRows = 2 ;for (int i = 0; i < len; ++i){ str[row].push_back(s[i]); if (row == 0) step = 1; else if (row == nRows - 1) step = -1; row += step;}s.clear();for (int j = 0; j < nRows; ++j){ s.append(str[j]);}/*****************************************************/代码简洁,思路简单,同样是模拟一个转换的过程,先从第一行开始存,然后行数++,存到最后一行的时候又开始返回往上开始存,行数--,知道s的字符串存完,整个存储过程类似于一个“W”的形状。
菜鸡继续加油。。。
- leetcode刷题:The string "PAYPALISHIRING"
- The Solution to Leetcode 344 Reverse String
- LeetCode 刷题 -- Reverse String
- Leetcode刷题(Reverse String)
- 【leetcode】【Easy】【389. Find the Difference】【string】【bit manipulation】
- Leetcode 8. String to Integer (atoi) The Solution of Python
- The Solution to Leetcode 541 Reverse String II
- Leetcode 刷题: Q344 Reverse String
- The String |
- The String ||
- 【Leetcode】String
- LeetCode:String
- LeetCode-String
- leetcode刷题8. String to Integer (atoi)
- [Leetcode刷题]Reverse Words in a String
- Leetcode 151 - Reverse words in String - The C Language O(1) space
- leetcode Longest Substring Without Repeating Characters Description: Given a string, find the leng
- the length of the string
- 关于java编程该学什么?如何学?
- 最小二乘法的极大似然解释
- 【TensorFlow】tf.nn.conv2d是怎样实现卷积的?
- Spring整合Hibernate 使用dbcp连接池
- Linux配置SVN 服务端
- leetcode刷题:The string "PAYPALISHIRING"
- 【LeetCode】198. House Robber
- 五大最佳开源java性能监控工具
- 资源描述框架RDF-阮一峰
- Java中的转义字符
- 哟,又是第一次--博客之旅
- EASYAR + UNITY + MMD4 制作 AR 小软件(特效非常赞)
- 134. Gas Station (数学)
- WebBrowser查看版本