博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode 6. ZigZag Conversion
阅读量:6518 次
发布时间:2019-06-24

本文共 1374 字,大约阅读时间需要 4 分钟。

题目: 将字符串转化成zigzag模式。

例如 "abcdefghijkmlnpq" 

当为4行,zigzag模式为:

a    g    l
b f h m n
c e i k   p
d   j      q
输出为aglbfhmnceikpdjq
当为5行,zigzag模式为:
a    i
b h j q
c g k p
d f l  n
e   m
输出为aibhjqcgkpdflnem

思路:以题目中当行为4的为例,将字符串"abcdefghijkmlnpq" 首先转换为"abcd/fe/ghij/km/lnpq".其实/代表空格。这样最后的输出就从以span=4,从j=0开始a/g/l. 再从j=1开始bfhmn,...,一直到j=4,d/j/q.其中去掉/。

所以首先需要将原字符串转换为用空格填充的字符串。从上面的例子可以看出规则。首先是numRows个字符为一列,然后numRows-2个字符为反序的一列,其上下各有一个空格。

1 class Solution { 2 public: 3     string convert(string s, int numRows) { 4         int i=0,k=0,j; 5         int len=s.length(); 6         string ss=""; 7         int flag=0; 8         while(i
0&&j--){12 ss+=s[i++];13 }14 while(j>0&&j--){15 ss+=' ';16 }17 flag=2;18 }19 else {20 ss+=' ';21 string temp="";22 while(i
0&&j--){23 temp+=s[i++];24 }25 std::reverse(temp.begin(),temp.end()); 2627 while(j>0&&j--){28 ss+=' ';29 }30 ss+=temp;31 ss+=' ';32 flag=0;33 }34 }35 string s1="";36 k=ss.length();37 for(i=0;i

leetcode上运行时间为 24ms

转载于:https://www.cnblogs.com/aiheshan/p/5768801.html

你可能感兴趣的文章
关闭 IOS8 最近使用 最近联系人
查看>>
Running Trinity in multiple steps
查看>>
Git学习系列(六)解决分支冲突及分支管理策略
查看>>
数通手稿留档——Multicast
查看>>
海量运维、运营规划之道
查看>>
matplotlib动画入门(1):基本概念
查看>>
说好的人工智能 怎么只看到高科技玩具?
查看>>
人工智能切入垂直领域 风口已至?
查看>>
通过建站学运维1901-08任务
查看>>
客户服务支持管理软件—工单管理
查看>>
大数据批处理框架Spring Batch 的全面解析
查看>>
程序员笔记|常见的Spring异常处理
查看>>
如何制作照片蒙太奇效果?
查看>>
TomTom导航新增IFTTT功能 可连接到车主日常生活设备
查看>>
电脑端用起来特别爽的四款软件,哪一款才是你的最爱?
查看>>
矿井水质在线监测系统
查看>>
oracle技术之Oracle 物化视图(一)
查看>>
CentOS 6 编译安装subversion-1.8.10+Apache2.4
查看>>
ORA-09925: Unable to create audit trail file 在DBCA时
查看>>
MySQL5.6优化了Order by排序limit
查看>>