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;
}
版权声明:转载请注明出处,谢谢。

LeetCode 6 ZigZag Conversion (C,C++,Java,Python)

Problem: The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows l...
  • runningtortoises
  • runningtortoises
  • 2015年05月06日 22:55
  • 1075

leetcode 6 ZigZag Conversion C++

这道题最大的难点在理解题意。。。 它是一个折线图样子的。 string convert(string s, int numRows) { string result = ""; ...
  • a2331046
  • a2331046
  • 2016年06月28日 10:52
  • 189

Leetcode_6_ZigZag Conversion

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/41408021 看完这篇文章,你可能会学到到知识如下: ...
  • pistolove
  • pistolove
  • 2014年11月23日 09:45
  • 2579

ZigZag Conversion (C实现)

The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like this: (you...
  • u014056175
  • u014056175
  • 2015年09月08日 14:40
  • 322

LeetCode-6. ZigZag Conversion (JAVA)(之字形转换)

LeetCode-6. ZigZag Conversion (JAVA)(之字形转换)
  • mine_song
  • mine_song
  • 2017年04月17日 09:41
  • 210

[Leetcode]6. ZigZag Conversion @python

题目The string “PAYPALISHIRING” is written in a zigzag pattern on a given number of rows like this: (y...
  • qian2729
  • qian2729
  • 2016年01月13日 00:32
  • 715

[Java]leetcode6 ZigZag Conversion

[Java]leetcode ZigZag Conversion
  • fumier
  • fumier
  • 2015年04月12日 11:17
  • 642

【LeetCode】ZigZag Conversion 解题报告

【题目】 The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like th...
  • ljiabin
  • ljiabin
  • 2014年10月26日 16:49
  • 22479

Leetcode刷题记——6.ZigZag Conversion

一、题目叙述:截张图算啦 二、解题思路: 好啦~我是先挑Leetcode里面标记为easy的题刷哒,但是写的算法依旧非常糟糕,很多时候我完全不考虑效率问题只求能通过。。。待改进...
  • sunshine0_0
  • sunshine0_0
  • 2016年09月21日 18:25
  • 115

【小熊刷题】ZigZag Conversion <Leetcode 6, Java>

QuestionThe string “PAYPALISHIRING” is written in a zigzag pattern on a given number of rows return ...
  • huilaner
  • huilaner
  • 2015年09月11日 03:29
  • 306
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:6. ZigZag Conversion
举报原因:
原因补充:

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