6. Z 字形变换

embedded/2024/10/20 15:57:21/

题目描述

给你一个字符串s和行数numRows,把s字符串按照z字形重新排列。
再从左往右进行读取,返回读取之后的字符串。

本题是找规律,但是没有找出来

解题思路

要想解出来该题,在进行z字变换的时候,我们把字符串的下标进行进行变换,容易找出规律。

规律如下:
在这里插入图片描述

代码

class Solution {
public:string convert(string s, int numRows) {//为1时特判if(numRows==1) return s;string ret;int d=2*numRows-2;for(int i=0;i<numRows;i++){//start2初始为最大,为了在第0和第numRows-1行时,可以跳出循环int start1=i,start2=INT_MAX;if(i!=0&&i!=numRows-1) start2=d-i;while(start1<s.size()||start2<s.size()){if(start1<s.size()) ret+=s[start1],start1+=d;if(i!=0&&i!=numRows-1&&start2<s.size()) ret+=s[start2],start2+=d;}}return ret;}
};

http://www.ppmy.cn/embedded/37201.html

相关文章

鸿蒙编译子系统详解(二)main.py

1.5.4源码解析 1.5.4.1 build/hb/main.py脚本 这个脚本是编译的主程序脚本&#xff0c;流程如下&#xff1a; 首先是初始化各种module类&#xff0c;然后运行对应模块。 hb分为build,set,env,clean,tool,help几个模块&#xff0c;模块源码位于build/hb/modules/目录下&#xff…

喜报 | 擎创科技荣获NIISA联盟2023年度创新技术特等奖!

为深入实施创新驱动发展战略&#xff0c;紧紧把握全球科技革命和产业变革方向&#xff0c;密切跟踪前沿科技新趋势&#xff0c;经科技部中国民营促进会业务主管部门批准以及国家互联网数据中心产业技术创新战略联盟&#xff08;以下简称联盟&#xff09;总体工作安排&#xff0…

Docker in Docker(DinD)原理与实践

Docker in Docker&#xff08;DinD&#xff09;原理与实践 一、引言 随着容器化技术的快速发展&#xff0c;Docker已经成为了企业应用开发、部署和管理的首选工具。而在某些复杂场景下&#xff0c;如持续集成/持续部署&#xff08;CI/CD&#xff09;管道中&#xff0c;我们需…

多线程基础知识(全面):创建线程、线程状态如何变化、wait()、notify()、sleep()、停止线程

文章目录 一、创建线程的四种方式1.1 继承Thread类1.2 实现runnable接口1.3 实现Callable接口1.4 线程池创建线程1.5 补充&#xff1a;runnable、callable都可以创建线程&#xff0c;有什么区别&#xff1b;run()和 start()有什么区别 二、线程包括哪些状态、状态之间如何变化2…

Grafana 重置 admin 密码

Grafana 重置 admin 密码 1. 已知 admin 密码修改新密码1.1 方法一&#xff1a;常规方法1.2 方法二&#xff1a;API 接口 2. 忘记 admin 密码重置密码2.1 方法一&#xff1a;命令行2.2 方法二&#xff1a;修改数据库2.3 方法三&#xff1a;将某个用户提权为 admin 权限用户 参考…

Go 语言基础之面向对象编程

1、OOP 首先&#xff0c;Go 语言并不是面向对象的语言&#xff0c;只是可以通过一些方法来模拟面向对象。 1.1、封装 Go 语言是通过结构体&#xff08;struct&#xff09;来实现封装的。 1.2、继承 继承主要由下面这三种方式实现&#xff1a; 1.2.1、嵌套匿名字段 //Add…

机器学习——5.案例: 乳腺癌预测

案例目的 通过已标注的数据&#xff0c;训练出模型来预测患者是否有患乳腺癌。 该问题属于二分类问题&#xff0c;所以可以使用Sigmoid激活函数&#xff0c;损失用BCE函数 代码逻辑步骤 读取数据训练集与测试集拆分数据标准化数据转化为Pytorch张量label维度转换定义模型定…

Rust:文件 launch.json 有什么用?

launch.json 是 Visual Studio Code&#xff08;VSCode&#xff09;中的一个配置文件&#xff0c;主要用于配置调试器。当你在 VSCode 中进行代码调试时&#xff0c;launch.json 文件告诉调试器如何启动和配置你的程序。 具体来说&#xff0c;launch.json 文件包含了以下信息&…