当前位置:网站首页>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;
}
};
边栏推荐
- Redis主从复制、哨兵、cluster集群原理+实验(好好等,会晚些,但会更好)
- 彻底凉了!腾讯知名软件全线下架,网友一片唏嘘。。。
- 【TcaplusDB知识库】WebClient用户如何读取和修改数据
- TDengine&nbsp;×英特尔 边缘洞见软件包 加速传统行业的数字化转型
- 批量修改指定字符文件名 bat脚本
- 「科普大佬说」 智能仿生机器鱼
- 节点基础~节点层级
- 使用Karmada实现Helm应用的跨集群部署
- [official cooperation between Shang Silicon Valley and Tencent cloud] video release of Silicon Valley classroom project
- Squid代理服务器应用(我从远方赶来,赴你一面之约)
猜你喜欢

使用Karmada实现Helm应用的跨集群部署

12 SQL optimization schemes summarized by old drivers (very practical)

天翼云Web应用防火墙(边缘云版)通过首批可信认证

Squid代理服务器应用(我从远方赶来,赴你一面之约)

Cross cluster deployment of helm applications using karmada

Panorama of enterprise power in China SSD industry

清华大佬耗时3天总结出的'常见网络协议汇总'
Tidb v6.0.0 (DMR): initial test of cache table - tidb Book rush

CSDN博客专家

MySQL高可用之MHA(一不小心和我的青春擦肩而过)
随机推荐
Opencv read picture details
Squid代理服务器应用(我从远方赶来,赴你一面之约)
[tcapulusdb knowledge base] view the business password
解决sqoop出现 ERROR manager.SqlManager: Generic SqlManager.listDatabases() not implemented
RHEL6.4中使用Cacti+Spine监控主机实现发送邮件报警
[tcapulusdb knowledge base] how webclient users read and modify data
apache 设置timeout参数
rsync 远程同步(日落尤其温柔的人间皆是浪漫)
Solve the problem of sqoop error manager SqlManager: Generic SqlManager. listDatabases() not implemented
R programming language - Introduction
手机买场内基金开户选哪家证券公司比较好,比较安全呢
Apache setting timeout parameter
谈谈我对画面撕裂,垂直同步,Freesync以及G-sync的理解「建议收藏」
免费、强大、高颜值的笔记软件评测: OneNote、Heptabase、氢图、FlowUs
[tcaplusdb knowledge base] view tcapdir directory server
Problems encountered in local deployment conflict: MySQL database code, isolation level and verification code are not displayed
传统运维不得不会的zabbix监控(你早起,我早起,我们迟早在一起)
NoSQL之Redis配置与优化(你不在南京的日子我替你吹了秦淮河的晚风)
Learning process summary of ARM9 development [easy to understand]
Tidb v6.0.0 (DMR): initial test of cache table - tidb Book rush