6---N字形变化

news/2024/10/30 15:33:42/

将一个给定字符串 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 . l e n g t h < = 1000 1 <= s.length <= 1000 1<=s.length<=1000
  • s 由英文字母(小写和大写) 、 ′ , ′ 和 ′ . ′ 组成 s 由英文字母(小写和大写)、',' 和 '.' 组成 s由英文字母(小写和大写),.组成
  • 1 < = n u m R o w s < = 1000 1 <= numRows <= 1000 1<=numRows<=1000

找规律
数字看为下标
在这里插入图片描述
等差数列的首项和公差

第一行为首项是0,公差是2(n-1)的等差数列
中间是两个等差数列交错
最后一行是首项是n-1,公差是2(n-1)的等差数列
在这里插入图片描述

class Solution {
public:string convert(string s, int numRows) {string res;//特例if (numRows == 1) return s;for (int j = 0; j < numRows; j ++ ){//第一行或者最后一行if (j == 0 || j == numRows - 1){for (int i = j; i < s.size(); i += (numRows-1) * 2)res += s[i];}else{for (int k = j, i = numRows * 2 - 1 - j - 1;i < s.size() || k < s.size();i += (numRows - 1) * 2, k += (numRows - 1) * 2){if (k < s.size()) res += s[k];if (i < s.size()) res += s[i];}}}return res;}
};

http://www.ppmy.cn/news/58693.html

相关文章

生物信息学中---数据集不平衡的处理方法

1.NearMiss&#xff1a; NearMiss 是 Mani 等人根据数据分布特征&#xff0c;基于 KNN 算法提出的欠采样方案&#xff0c; 对多数类样本利用随机欠采样来达到数据平衡。 根据不同数据采样的距离&#xff0c;可以分为三类&#xff1a; NearMiss-1、 NearMiss-2 和 NearMiss-3。…

【GORM框架】ORM介绍、GORM简单连接和高级配置详解

博主简介&#xff1a;努力学习的大一在校计算机专业学生&#xff0c;热爱学习和创作。目前在学习和分享&#xff1a;数据结构、Go&#xff0c;Java等相关知识。博主主页&#xff1a; 是瑶瑶子啦所属专栏: GORM框架学习 近期目标&#xff1a;写好专栏的每一篇文章 目录 一、简介…

Azure DevOps Server 数据还原方式三:增量还原

Contents 1. 概述2. 操作方式 2.1 创建共享文件夹&#xff0c;并将备份文件复制到共享文件夹中2.2 还原数据3 验证还原的数据库 3.1 方式一&#xff1a;核对工作项所在的表的数据3.2 方式二&#xff1a;将数据库配置到应用层&#xff0c;在应用中验证数据4. 常见问题&#xff1…

FreeRTOS 事件标志组

文章目录 一、事件标志组简介二、创建事件标志组1. 函数 xEventGroupCreate()2. 函数 xEventGroupCreateStatic() 三、设置事件位1. 函数 xEventGroupClearBits()2. 函数 xEventGroupClearBitsFromISR()3. 函数 xEventGroupSetBits()4. 函数 xEventGroupSetBitsFromISR() 四、获…

企业信息化建设都包括哪些方面?

企业信息化建设都包括哪些方面&#xff1f; 在这个信息化快速发展的时代&#xff0c;企业信息化管理系统已经成为了企业发展的必要条件之一。大家都在说要信息化、数字化&#xff0c;那么&#xff0c; 到底什么是企业信息化建设&#xff1f;企业信息化建设包括哪些方面&#…

信息技术发展

OSI网络标准协议 物理层&#xff1a;联网的媒介 RS232 FDDI 数据链路层: 网络层接收到的数据分割成可被物理层传输的帧 IEEE802.3/.2 ATM 网络层&#xff1a;网络地址翻译成对应的物理地址&#xff0c;路由 IP ICMP IGMP IPX ARP 传输层&#xff1a;端到端的错误恢复和流量控制…

良好的沟通是我们成功的关键

目录 一、什么是沟通 二、沟通方法 正确的表达方式&#xff1a; 职场中对上沟通 主动与上级沟通 提前做好准备 避免只讲困难 意见不同的争辩不是批评 良好的沟通是我们成功的关键 一、什么是沟通 百度&#xff1a;沟通&#xff08;communication&#xff09;是人们分…

总结837

今天跟唐同学一块去商洛柞水的福源漂流。咱俩因为比较喜欢刺激又好玩的东西&#xff0c;于是一拍即合&#xff0c;说走就走。 由于路程比较遥远&#xff0c;在去的路上比较费时&#xff0c;花了大约五六个小时&#xff0c;但这却丝毫不影响我们玩漂流的体验感。 这世界上有很…