博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从头做leetcode之leetcode 6 Z字形变换
阅读量:2433 次
发布时间:2019-05-10

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

6.Z字形变换

将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。

比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下:

L C I R

E T O E S I I G
E D H N

之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDHN”。

  1. 思路是按行遍历,找到每一行的规律。设n为行数-1(即第一行的n为0),numRows为总行数。
  • 第一行与最后一行的数每个相隔2*(numRows-1)。
  • 中间的行里每一个数和它之后的第二个数(即每一个完整的列)依旧相隔2*(numRows-1),
    而属于Z字斜边(即两个完整列之间)的那个数与后面的数的间隔是2n。
    由这两个规律可以很简单的写出解答:
class Solution {
public: string convert(string s, int numRows) {
if(s.size()<=numRows || numRows==1){
//这两种情况是s都在第一列或s为空,直接输出s即可。 return s; } int n=0; int ass=2*numRows-2; string resstr=""; while(n
numRows){
//(避免flagn=1时溢出) resstr.push_back(s[flagn-2*n]); } resstr.push_back(s[flagn]); flagn += ass; } if(flagn-2*n <= s.size()-1){
resstr.push_back(s[flagn-2*n]); } } n++; } return resstr; }};

通过时间:

在这里插入图片描述

转载地址:http://snemb.baihongyu.com/

你可能感兴趣的文章
持续改进之配置管理变更的关键路径
查看>>
postgresql 优化与维护
查看>>
mongodb replica sets 测试
查看>>
linux AS6.2 与 as5.4 的对比,性能提升明显
查看>>
FLASHCACHE 的是是非非
查看>>
length() between oracle and postgresql
查看>>
求无序数组总第n大的数
查看>>
99-lisp lisp 的99个问题 P1-10
查看>>
PG 函数的易变性(Function Volatility Categories)
查看>>
Lisp Quote 和Backquote分析
查看>>
PG psql 变彩色显示
查看>>
SICP 练习 1.3
查看>>
pg 数据库HA 启动脚本的两个假设
查看>>
PG9.2.3 发布
查看>>
sql_log_bin在GTID复制下的一个现象
查看>>
双主+haproxy手工切换的一个注意点
查看>>
利用binlog2sql实现闪回
查看>>
mongos分片集群下db数量过多导致服务不可用
查看>>
mysql唯一索引的一个小常识--Duplicate entry 'XXX' for key 'XXX'
查看>>
故障处理--mongos count不准
查看>>