LeetCode6-ZigZag convert
来源:互联网 发布:数据库工资管理系统 编辑:程序博客网 时间:2024/06/06 01:45
【题目】
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"
.将字符串锯齿状排列后获取其横排重构后的字符串;
【思路】
找规律,发现锯齿状的每一个元素与其所在的行列的关系如下:
0 2r-2 2(2r-2)……1(2r-2)-1(2r-2)+1(2*(2r-2))-1(2*(2r-2))+1……2(2r-2)-2(2r-2)+2(2*(2r-2))-2(2*(2r-2))+2……3(2r-2)-3(2r-2)+3(2*(2r-2))-3(2*(2r-2))+3……………………………………r-1(2r-2)-(r-1)(2r-2)+(r-1)(2*(2r-2))-(r-1)(2*(2r-2))+(r-1)……当numRows=1时,排序后的字符串和排序前的相同
【Java代码】
public class Solution_6_zigzag_convert {public String convert(String s, int numRows){String result = "";if(numRows == 1){result = s;return result;}for(int i = 0 ; i < numRows&&i < s.length() ; i++){result += s.charAt(i);int j = 1;if(i == 0)while(j*(2*numRows-2)<s.length())result += s.charAt(j++*(2*numRows-2));else if(i == numRows - 1)while(j*(2*numRows-2)+numRows-1<s.length())result += s.charAt(j++*(2*numRows-2)+numRows-1);else{while(j*(2*numRows-2)-i<s.length()){result += s.charAt(j*(2*numRows-2)-i);if(j*(2*numRows-2)+i<s.length())result += s.charAt(j*(2*numRows-2)+i);j++;}}}return result;}}
0 0
- LeetCode6-ZigZag convert
- LeetCode6:ZigZag Conversion
- leetcode6-ZigZag Conversion
- leetcode6 Zigzag Conversion
- [Java]leetcode6 ZigZag Conversion
- ZigZag Conversion leetcode6
- leetcode6 ZigZag Conversion
- LeetCode6:ZigZag Conversion
- LeetCode6. ZigZag Conversion
- leetcode6. ZigZag Conversion
- Leetcode6: ZigZag Conversion
- leetcode6. ZigZag Conversion
- leetcode6. ZigZag Conversion
- Leetcode6、ZigZag Conversion
- LeetCode6. ZigZag Conversion
- ZigZag Conversion(leetcode6)
- LeetCode6—ZigZag Conversion
- leetcode6. ZigZag Conversion
- http
- \t\tsizeof(char*)几个字节?
- 创建四角星按钮
- \t\tint类型到底占几个字节?
- syslog
- LeetCode6-ZigZag convert
- \t\t同一个程序,在VC6有错误和VS2005没有问题
- xmlbean
- \t\twhile(cin>>***)如何跳出?
- \t\ti++和++i的问题
- 十三.MUI
- webservice
- java 操作csv文件
- \t\t在VC6.0中查看汇编代码