LeetCode刷题-006Z字形变换

Posted nkqlhqc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode刷题-006Z字形变换相关的知识,希望对你有一定的参考价值。

将字符串 "PAYPALISHIRING" 以Z字形排列成给定的行数:
P A H N
A P L S I I G
Y I R
之后从左往右,逐行读取字符:"PAHNAPLSIIGYIR"

实现一个将字符串进行指定行数变换的函数 : string convert(string s, int numRows);

示例 1:
输入: s = "PAYPALISHIRING", numRows = 3
输出: "PAHNAPLSIIGYIR"

示例 2:
输入: s = "PAYPALISHIRING", numRows = 4
输出: "PINALSIGYAHRPI"

 1 class Solution
 2 {
 3 public:
 4     string convert(string s, int numRows)
 5     {
 6         vector<char*> rect;
 7         int index = 0;
 8         string result;
 9         while(index<s.size())
10         {
11             char* pA = (char*) new char[numRows];
12             char* pB = (char*) new char[numRows];
13             rect.push_back(pA);
14             rect.push_back(pB);
15             for(int i=0;i<numRows;i++)
16             {
17                pA[i]= ;
18                pB[i]= ;
19             }
20             for(int j=0;j<numRows && index<s.size();j++)
21             {
22                pA[j]=s[index];
23                index++;
24                cout<<pA[j];
25             }
26             for(int j=numRows-2;j>0 && index<s.size();j--)
27             {
28                pB[j]=s[index];
29                index++;
30             }
31         
32         }
33 
34         for(int j=0;j<numRows;j++)
35         {
36             for(int i=0;i<rect.size();i++)
37             {
38                 if(rect[i][j]!= )
39                 result.push_back(rect[i][j]);
40             }
41         }
42         
43         return result;
44     }
45 };

 









以上是关于LeetCode刷题-006Z字形变换的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode刷题-2: Z 字形变换

LeetCode 6. Z 字形变换

Leetcode 6. Z 字形变换-中等(图)

Z字形变换 leetcode 6

[LeetCode] Z字形变换

leetcode算法:6.Z 字形变换