leetcoe刷题日志-6N字形变换

news/2025/2/14 5:01:05/

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

比如输入字符串为 “PAYPALISHIRING” 行数为 3 时,排列如下:
在这里插入图片描述
之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“PAHNAPLSIIGYIR”。

请你实现这个将字符串进行指定行数变换的函数:

string convert(string s, int numRows);

示例 1

输入:s = “PAYPALISHIRING”, numRows = 3
输出:“PAHNAPLSIIGYIR”
示例 2
输入:**s = “PAYPALISHIRING”, numRows = 4
输出:“PINALSIGYAHRPI”
解释:
在这里插入图片描述

示例 3

输入:s = “A”, numRows = 1
输出:“A”

这道题没想出来,看了题解
在这里插入图片描述

class Solution {public String convert(String s, int numRows) {if(numRows<2) return s;List<StringBuilder> rows = new ArrayList<StringBuilder>();for(int i = 0; i < numRows; i++) rows.add(new StringBuilder());int i=0,flag = -1;for(char c : s.toCharArray()){rows.get(i).append(c);if(i == 0 || i == numRows -1) flag = - flag;//这里很巧妙,大家可以体会一下,相当于控制索引来回移动i += flag;}StringBuilder res = new StringBuilder();for(StringBuilder row : rows) res.append(row);return res.toString();}
}

作者:Krahets
链接:https://leetcode.cn/problems/zigzag-conversion/solutions/21610/zzi-xing-bian-huan-by-jyd/


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

相关文章

【RocketMq系列-01】RocketMq安装和基本概念

RocketMq系列整体栏目 内容链接地址【一】RocketMq安装和基本概念https://zhenghuisheng.blog.csdn.net/article/details/134486709 RocketMq安装和基本概念 一&#xff0c;RocketMq安装和基本概念1&#xff0c;RocketMq基本安装(本地安装)2&#xff0c;Rocketmq的核心概念2.1&…

React+后端实现导出Excle表格的功能

最近在做一个基于Reactantd前端框架的Excel导出功能&#xff0c;我主要在后端做了处理&#xff0c;这个功能完成后&#xff0c;便总结成一篇技术分享文章&#xff0c;感兴趣的小伙伴可以参考该分享来做导出excle表格功能&#xff0c;以下步骤同样适用于vue框架&#xff0c;或者…

JWT开发详解

文章目录 一、JWT理论基础二、JWT使用实例2.1 服务端代码2.2 客户端代码 三、JWT流程 一、JWT理论基础 JSON Web Token&#xff08;JWT&#xff09;是一种开放标准&#xff08;RFC 7519&#xff09;&#xff0c;用于在网络上以紧凑且自包含的方式安全地传输信息。JWT 被设计为…

Vue3清除Echarts图表

一&#xff1a;前言 Vue3是一款流行的JavaScript框架。它提供了丰富的工具和组件&#xff0c;使得开发者可以轻松构建交互式的Web应用程序。而Echarts是一款功能强大的图表库&#xff0c;它可以帮助开发者以直观的方式展示数据。 在使用Vue3和E charts的过程中&#xf…

【C语言的秘密】密探—深究C语言中多组输入的秘密!

场景引入&#xff1a; 你是否在刷题过程中&#xff0c;经常遇到以下场景呢&#xff1f; 场景一&#xff1a; 场景二&#xff1a; 从这些题上都能看见输入描述中提出了一条多组输入&#xff0c;那啥是多组输入&#xff1f;如何实现它呢&#xff1f; 多组输入&#xff1a;在输入…

SELinux零知识学习十八、SELinux策略语言之类型强制(3)

接前一篇文章&#xff1a;SELinux零知识学习十七、SELinux策略语言之类型强制&#xff08;2&#xff09; 二、SELinux策略语言之类型强制 2. 类型、属性和别名 &#xff08;3&#xff09;关联类型和属性 1&#xff09;使用type语句关联类型和属性 迄今为止&#xff0c;我们…

快速入门ESP32——开发环境配置PlatformIO IDE

相关文章 快速入门ESP32——开发环境配置Arduino IDE 快速入门ESP32——开发环境配置PlatformIO IDE 一、下载安装二、验证 一、下载安装 下载安装 vscode 安装PlatformIO插件 创建工程 二、验证 写一个简单的函数来验证一下功能 void setup() {// put your setup cod…