LeetCode ZigZag Conversion

来源:互联网 发布:linux kafka 编辑:程序博客网 时间:2024/06/06 12:52

问题网址:https://leetcode.com/problems/zigzag-conversion/description/

问题描述:
字符串“PAYPALISHIRING”在以下给定数目的行上以Z字形图案书写:(您可能希望以固定字体显示该图案以便更好的易读性)

P   A   H   NA P L S I I GY   I   R

然后逐行阅读:“PAHNAPLSIIGYIR”
编写代码,将采取一个字符串,并给予这种转换给予许多行:

string convert(string text, int nRows);

convert(“PAYPALISHIRING”, 3) should return “PAHNAPLSIIGYIR”.

一个简单想法:

string convert(string text, int nRows) {    string s[nRows];    string str;    for (int i = 0; i < text.size();) {        for (int j = 0; j <= nRows; j++) {            if (j < nRows && i < text.size()) {                s[j].push_back(text[i++]);            }            else if (i < text.size()) {                s[j/2].push_back(text[i++]);            }        }    }    for (int i = 0; i < nRows; i++) {        str += s[i];        cout << s[i] << endl;    }    return str;}

时间复杂度:O(n^2)

不过这段代码在一个测试用例上报错,这个用例的意义也不是很明确。

Input:"ABC"2Output:"ABC"Expected:"ACB"

而且leetcode这道题目到目前为止没有正确的解答,这道题的差评率也非常高。
这里写图片描述

原创粉丝点击