当前位置:网站首页>Leetcode 6. Z 字形变换(牛逼,解决了)
Leetcode 6. Z 字形变换(牛逼,解决了)
2022-06-28 16:55:00 【我不是萧海哇~~~~】

将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。
比如输入字符串为 “PAYPALISHIRING” 行数为 3 时,排列如下:
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"
解释:
P I N
A L S I G
Y A H R
P I
示例 3:
输入:s = "A", numRows = 1
输出:"A"
提示:
- 1 <= s.length <= 1000
- s 由英文字母(小写和大写)、‘,’ 和 ‘.’ 组成
- 1 <= numRows <= 1000
Code:
class Solution {
public:
string convert(string s, int numRows) {
if(numRows==1)
return s;
string res;
int col=0;
int loop=0;
int row=numRows;
vector<vector<char>> newOne(numRows, vector<char>(10000, ' '));
do
{
//if(col)
if(row==numRows)
{
for(int i=0;i<row;i++)
{
newOne[i][col]=s[loop++];
if(loop==s.length())
{
loop=0;
for(int m=0;m<newOne.size();m++)
{
vector<char>sub=newOne[m];
for(int n=0;n<sub.size();n++)
{
if(sub[n]!=' ')
{
loop++;
res+=sub[n];
}
// cout<<sub[n]<<" ";
if(loop==s.length())
return res;
}
// cout<<endl;
}
return res;
}
}
}
else
{
newOne[row-1][col]=s[loop++];
if(loop==s.length())
{
loop=0;
for(int m=0;m<newOne.size();m++)
{
vector<char>sub=newOne[m];
for(int n=0;n<sub.size();n++)
{
if(sub[n]!=' ')
{
loop++;
res+=sub[n];
}
// cout<<sub[n]<<" ";
if(loop==s.length())
return res;
}
// cout<<endl;
}
return res;
}
}
col++;
if(row>1)
row--;
else
row++;
if(row==1)
{
row=numRows;
}
}while(1);
return res;
}
};
边栏推荐
- Logback log output format
- [official cooperation between Shang Silicon Valley and Tencent cloud] video release of Silicon Valley classroom project
- Redis持久化(少年一贯快马扬帆,道阻且长不转弯)
- Flex布局
- Redis master-slave replication, sentinel, cluster cluster principle + experiment (wait, it will be later, but it will be better)
- TDengine&nbsp;×英特尔 边缘洞见软件包 加速传统行业的数字化转型
- RHEL6.4中使用Cacti+Spine监控主机实现发送邮件报警
- 58技术沙龙第三十一期|Flutter动态化专题沙龙
- 硕士学位论文写作探索学习
- NoSQL redis configuration and optimization (I blew the night breeze of Qinhuai River for you when you were not in Nanjing)
猜你喜欢

大促场景下,如何做好网关高可用防护
Tidb v6.0.0 (DMR): initial test of cache table - tidb Book rush

关于接口测试自动化的总结与思考

此虚拟机的处理器所支持的功能不同于保存虚拟机状态的虚拟机的处理器所支持的功能

Problems encountered in local deployment conflict: MySQL database code, isolation level and verification code are not displayed

MySQL高可用之MHA(一不小心和我的青春擦肩而過)

Potplayer play Baidu Cloud disk video

Flex布局

How to do a good job of gateway high availability protection in the big promotion scenario

The processor of this virtual machine supports different functions than the processor of the virtual machine that holds the state of the virtual machine
随机推荐
Tacacs+服务器部署
RHEL6.4中使用Cacti+Spine监控主机实现发送邮件报警
[daily 3 questions (2)] maximum ascending subarray sum
AutoSAR 软件开发培训
Potplayer plays Baidu cloud disk video
节点基础~节点层级
Cross cluster deployment of helm applications using karmada
PotPlayer播放百度云盘视频
提升可观测性 - 业务指标监控实践
Redis主从复制、哨兵、cluster集群原理+实验(好好等,会晚些,但会更好)
How to do a good job of gateway high availability protection in the big promotion scenario
共享主机和 WordPress 主机之间的区别
PMD-源代码分析器介绍
【每日3题(1)】字符串中第二大的数字
55. maximum sum of continuous subarrays
[tcapulusdb knowledge base] batch copy the game area
It's completely cold! Tencent's well-known software was taken off the shelves, and netizens were all sobbing...
Redis持久化(少年一貫快馬揚帆,道阻且長不轉彎)
如何将你的 WordPress 网站置于维护模式
MetaQ安装部署文档