LeetCode ZigZag Conversion(将字符串排成z字型)
1 class Solution { 2 public: 3 string convert(string s, int nRows) { 4 string a=""; 5 int len=s.length(); 6 if(len<=nRows||nRows==1) return s; //只有n个,不足一个周期||排成一行 7 int teams=len/(nRows*2-2); //teams个完整的周期 8 int rest=len%(nRows*2-2); //最后一个不足完整周期的元素数 9 int k=0,i=0,j=0; 10 for(i=0;i<nRows;i++){ 11 k=i; 12 for(j=0;j<teams;j++){ 13 a+=s[k]; 14 if(i!=0 && i!=nRows-1){ //每个周期内有两个 15 a+=s[(nRows*2-2)*(j+1)-i]; 16 } 17 k+=nRows*2-2; 18 } 19 if(i<rest) 20 a+=s[k]; 21 if(rest>nRows && rest>(nRows*2-2-i) && (nRows*2-2-i)>=nRows) 22 a+=s[(nRows*2-2)*(j+1)-i]; 23 } 24 return a; 25 } 26 };
ZigZag Conversion
题意:将一串字母按Z字(类似而已,具体看leetcode题目那样)排列,再按行串到一起返回。
思路:按周期,每n-2个为一个周期,最后可能不足一个周期,要特殊处理。因为一个周期内的Z字是有折叠的,所以一个周期内有的需要两个加起来。
吐槽:这个方法不精简,但是运行时间96ms。上网艘了一下别人的精简代码,确实很漂亮,但是时间达到168ms。那我还是暂时用这个好了。数据分析说有的居然50几ms就搞定,求代码喔~
转载于:https://www.cnblogs.com/xcw0754/p/4200117.html
LeetCode ZigZag Conversion(将字符串排成z字型)相关推荐
- LeetCode琅琊榜第十六层-Z字型变换(直接构造法 + 周期性算法)
LeetCode6.Z字形变换 难度:中等 往期力扣与博主空间 题目链接 目录 官方解法1-构造Z字型数组模拟 案例分析 规律探索 原因: 代码实现 代码分析: 问题 官方解法二-压缩上述二维数组 ...
- [LeetCode]ZigZag Conversion
题目:ZigZag Conversion 一串字符按照Z字形的数组给了我们,要求转成原本的顺序. 思路: 统计"|/"的个数: 竖着的和斜着的下标有对应关系: 竖着的:k = j* ...
- LeetCode ZigZag Conversion
题意:给出一个字符串和行数,求字符串zigzag变换后的字符串 如PAYPALISHIRING和行数为3,zigzag形式为 P A H N A P L S I I G Y I R 即结果字符串为PA ...
- [LeetCode] Z字型变换
题目内容: 将字符串 "PAYPALISHIRING" 以Z字形排列成给定的行数:P A H N A P L S I I G Y I R 之后从左往右,逐行读取字符:"P ...
- leetcode算法题--Z字型变换
题目链接:https://leetcode-cn.com/problems/zigzag-conversion/ 用一个二维数组来存储这个字符串,就是按照题目的方式存储,然后按行遍历即可. strin ...
- leetcode 6 z字型变换
执行用时 :64 ms, 在所有 Python3 提交中击败了99.74%的用户 由题目可知 我们的最终字符串会被摆成 numRows 行,那我们理解为 最终结果是numRows个字符串相加 先建立等 ...
- Z字型变幻,整数反转
题目1: 将一个给定字符串 s 根据给定的行数 numRows ,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "PAYPALISHIRING" 行数为 3 时,排列 ...
- [LeetCode题解] ZigZag Conversion
原文在这,可以来我blog翻翻哦. 第二天.今天AC掉了一道之前没AC掉的题目... 今天的题目是6. ZigZag Conversion 题目描述: The string "PAYPALI ...
- leetCode 6. ZigZag Conversion 字符串 (上传费劲)
6. ZigZag Conversion 题目:https://leetcode.com/problems/zigzag-conversion/ 1 2 3 4 5 6 7 8 9 10 11 12 ...
- [勇者闯LeetCode] 6. ZigZag Conversion
[勇者闯LeetCode] 6. ZigZag Conversion Description The string "PAYPALISHIRING" is written in a ...
最新文章
- python分配buffer_Node.js中的buffer如何和python中的buffer相对应
- startActivityForResult用法详解
- java 单例 读写锁_终极锁实战:单JVM锁+分布式锁
- 金蝶云系统服务器,金蝶系统云服务器已离线
- 数据结构之基于Java的链接队列实现
- winxp下安装虚拟机,并安装linux操作系统
- matlab查看RGB图像矩阵数值
- Attit 现代编程语言重要特性目录第一章 类型系统 基本三大类型 2第一节 字符串 数字 bool 2第二节 推断局部变量 2第三节 动态类型 2第二章 可读性与开发效率 简单性 2
- java jsonproperty_将多个JSON字段映射到单个Java字段
- 解决黑苹果核显HD4400开机卡在“io console user: gio screen lock state 3”问题/HD4400核显只有7M问题
- SN/CF 5W-40含义
- CORBA的基本内容(上)
- 企业级解决SQL注入、XSS攻击解决案例
- 2022 年我作为创作者使用的 5 个强大的 iPad 应用程序
- 【数学建模】常用模型算法及MATLAB代码汇总
- Oracle函数练习题
- 计算平均分(C语言)
- Solidworks2008 API 开发的问题。
- 使用虚拟机模拟Pickering开关及程控电阻的方法
- js php 实现日历签到_php+mysql+jquery实现日历签到功能的过程与步骤
热门文章
- 解决Instruments检测内存泄漏时真机无法定位的问题
- 第二节:各种路由约束(动态路由、静态路由、组合路由、正则约束、命名空间约束、区域内路由)...
- mysql数据库获得树的节点
- 58、IPv6访问控制列表及ICMPv6简介
- Arcgis Javascript API 开发笔记
- 从0开始学习C#第二天
- linux PDF转换为SWF
- 如何在mysql navicat 设置datetime类型的默认事件值
- nodemon运行 提示错误:无法加载文件 C:\Users\gxf\AppData\Roaming\npm\nodemon.ps1,因为在此系统上禁止运行脚本。
- 什么是configmap资源、secret资源(实战)