leetcode 6. ZigZag Conversion
来源:互联网 发布:倡导网络文明文章 编辑:程序博客网 时间:2024/06/05 18:53
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”.
这个题的就是说,有一个字符数字是按照Z子形的形式构造的,然后请你正确的读出正确的数组。 解决方法很简单,就是按照它的要求构造一遍,然后就可以读出正确的结果。
代码如下:
/* * 这道题就是把Z子形的字符串正确的读出来, * 思路很简单就是按照Z子形的方式读一遍, * 然后在取出结果就可以了 * * */public class Solution { public String convert(String s, int numRows) { if(s==null || s.length()<=0 || numRows<=1) return s; //这里把结果保存在string字符数组内 StringBuilder[] builders=new StringBuilder[numRows]; for(int i=0;i<numRows;i++) builders[i]=new StringBuilder(); //通过row来判断Z子形的走向和步进 int row=0,step=1; for(int i=0;i<s.length();i++) { builders[row].append(s.charAt(i)); row+=step; if(row==numRows) { row=row-2; step=-1; }else if(row==-1) { row=row+2; step=1; } } String res=""; for(int i=0;i<builders.length;i++) res+=builders[i].toString(); return res; } public static void main(String[] args) { Solution solution=new Solution(); System.out.println(solution.convert("ABC", 2)); }}
下面是C++版本的答案,就是按照要求构造一遍,然后直接读去一遍即可完成。
代码如下:
#include <iostream>#include <string>#include <vector>using namespace std;class Solution {public: string convert(string s, int numRows) { if (numRows <= 1) return s; string res = ""; vector<string> zip; for (int i = 0; i < numRows; i++) zip.push_back(""); int row = 0,step = 1; for (int i = 0; i < s.length(); i++) { zip[row] += s[i]; row += step; if (row == numRows) { row -= 2; step = -1; } else if (row == -1) { row += 2; step = 1; } } for (int i = 0; i < numRows; i++) res += zip[i]; return res; }};
阅读全文
0 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 6. ZigZag Conversion
- MySql--数据库和表的基本操作命令集(一)
- Android Native Development Kit Cookbook 中 第二章 Manipulating strings in JNI代码错误问题
- Rop开发手册(2):最简单的服务开放平台框架
- Java类成员的初始化方法和顺序
- Linux下消除短按开关键关闭系统
- leetcode 6. ZigZag Conversion
- ubuntu14.04设置静态ip
- SVN和Maven的区别
- 用Python和Pygame写游戏-从入门到精通(3)显示
- markdown常用语法
- 高级人工智能教程
- 回文数
- Rop开发手册(3):最简单的服务开放平台框架
- map没有对应的键查找