6. ZigZag Conversion

原创 2016年05月31日 21:52:43

6. ZigZag Conversion

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”’.

Analysis:
关键是找出规律,参考:http://www.cnblogs.com/TenosDoIt/p/3738693.html
Source Code(C++):

#include <iostream>
#include <vector>
#include <cmath>
#include <string>
using namespace std;

class Solution {
public:
    string convert(string s, int numRows) {
        if (numRows<1){
            return "error";
        }
        if (numRows==1) {
            return s;
        }
        int interval=numRows*2-2;
        string zigzag;
        for (int i=0; i<s.size(); i+=interval) {
            zigzag.push_back(s.at(i));
        }
        for (int i=1; i<numRows-1; i++) {
            int m_interval=i*2;
            for(int j=i; j<s.size(); j +=m_interval) {
                zigzag.push_back(s.at(j));
                m_interval = interval-m_interval;
            }
        }
        for (int i=numRows-1; i<s.size(); i+=interval) {
            zigzag.push_back(s.at(i));
        }
        return zigzag;
    }
};

int main() {
    Solution sol;
    cout << sol.convert("", 2);
    cout << sol.convert("affff", 0);
    cout << sol.convert("PAYPALISHIRING", 3);
    return 0;
}
版权声明:转载请注明出处,谢谢。 举报

相关文章推荐

[Java]leetcode6 ZigZag Conversion

[Java]leetcode ZigZag Conversion

[LeetCode - 字符串] 6. ZigZag Conversion

1 问题 The string “PAYPALISHIRING” is written in a zigzag pattern on a given number of rows like thi...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

6.ZigZag Conversion(93.10%)

题目:The string “PAYPALISHIRING” is written in a zigzag pattern on a given number of rows like this: (...

LeetCode 6 ZigZag Conversion

The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like this: (y...

6. ZigZag Conversion

The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like this: (you...

Leetcode 6. ZigZag Conversion The Solution of Python

The string “PAYPALISHIRING” is written in a zigzag pattern on a given number of rows like this: (you...

LeetCode 6 ZigZag Conversion(Z型转换)(String)

翻译字符串“PAYPALISHIRING”通过一个给定的行数写成如下这种Z型模式: P A H N A P L S I I G Y I R然后一行一行的读取:“PAHNAPLSII...
  • NoMasp
  • NoMasp
  • 2015-09-21 22:22
  • 2071

6. ZigZag Conversion

题目:ZigZag Conversion原题链接:https://leetcode.com/problems/zigzag-conversion/ The string “PAYPALISHIRIN...

6.ZigZag Conversion

题目 The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like ...

[Leetcode]_6 ZigZag Conversion

Leetcode_6 ZigZag Conversion 模拟法,找规律
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)