码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode刷题-006Z字形变换

时间:2018-05-24 22:20:38      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:cto   div   sig   res   bsp   str   while   字符   paypal   

将字符串 "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字形变换

标签:cto   div   sig   res   bsp   str   while   字符   paypal   

原文地址:https://www.cnblogs.com/nkqlhqc/p/9085343.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!