LeetCode OJ 06 ZigZag Conversions
来源:互联网 发布:淘宝商品质检报告 编辑:程序博客网 时间:2024/06/01 08:07
题目难度:easy
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"
.
思路: 刚入手题目的时候可能会不太理解题目的内容。ZigZag pattern的意思就是假设原字符串为01234556789。当row为3时,该字符串中元素的放置样式如图1所示;当row为4时,该字符串中元素的放置样式如图2所示。
输出的字符串顺序就是将这样放置的元素横向输出出来。
通过数学规律发现:第一行和最后一行两个元素的坐标差值为2*numRows-2
中间行差值为2*numRows-2的两个元素之间会多加一个元素,而这个元素坐标与前元素坐标差值为j+2*numRows-2-2*i (其中j为前元素坐标而i为行数)
代码如下:
class Solution {public: string convert(string s, int numRows) { string output="";int zigPan = 2*numRows-2;int len = s.length();if(len<=2||numRows<2||len<numRows) return s;for(int i=0;i<numRows;i++){for(int j=i;j+numRows<len;j+=(zigPan+1)){output.push_back(s[j]);if(i!=0&&i!=(numRows-1)&&(j+2*numRows-2-2*i)<len){output.push_back(s[j+2*numRows-2-2*i]);}}}return output; }};
性能分析:
0 0
- LeetCode OJ 06 ZigZag Conversions
- LeetCode OJ:ZigZag Conversion
- LeetCode OJ - ZigZag Conversion
- LeetCode OJ ZigZag Conversion
- LeetCode OJ - ZigZag Conversation
- LeetCode OJ ZigZag Conversion
- Leetcode OJ: ZigZag Conversion
- [LeetCode OJ][006]ZigZag Conversion
- LeetCode OJ : 6 ZigZag Conversion
- LeetCode OJ 6.ZigZag Conversion
- LeetCode OJ 6. ZigZag Conversion
- LeetCode OJ(6.ZigZag Conversion)
- LeetCode OJ-6.ZigZag Conversion
- LeetCode 06 ZigZag Conversion
- Leetcode 06 ZigZag Conversion
- 南邮 OJ 1442 temperature conversions
- LeetCode OJ:Binary Tree Zigzag Level Order Traversal
- LeetCode OJ算法题(六):ZigZag Conversion
- C语言流输入和输出函数
- 关于Oracle 产品(database,中间件等等)在vmware虚拟化环境中的支持情况
- install ftp client on kail
- Syntax error, type annotations are available only when source level is at least 1.8
- rust raw pointer使用方法(3)
- LeetCode OJ 06 ZigZag Conversions
- spring 中的 factory-method 属性
- swift解析XML(NSXMLParser)
- itext生成PDF文件报错“Font 'STSong-Light' with 'UniGB-UCS2-H' is not recognized.”
- 用好Python帮助函数help(),dir(),type()
- html细节
- 【spoj104】highways
- 展望(开篇)
- 中小站长网站建设发展需注意的的六点ccxtqj