LeetCode #6 ZigZag Conversion

    xiaoxiao2021-03-25  67

    Description

    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

    题目难度为:medium 这是一题数学题,看懂题目就好,所谓的Z排列就是如下这种形式:

    1 7 1 9 2 6 8 2 8 0 3 5 9 3 7 A 4 0 4 6 B 5

    Code(c )

    class Solution { public: string convert(string s, int numRows) { string output = ""; if (numRows < 2) return s; int index = 2*numRows - 2; for (int i = 0; i < numRows; ++i) { for (int j = 0; index*j + i < s.size(); ++j) { output += s[index*j+i]; if ( i > 0 && i < numRows-1 && (j+1)*index-i < s.size()) output += s[(j+1)*index-i]; } } return output; } };
    转载请注明原文地址: https://ju.6miu.com/read-35997.html

    最新回复(0)