当前位置: 首页 > news >正文

LeetCode6. Z 字形变换(Java)

将一个给定字符串 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"

解法:

class Solution {public String convert(String s, int numRows) {//如果numRows为1,则直接返回sif (numRows == 1) return s;//创建String数组和初始化数组String[] rows = new String[numRows];for (int i = 0; i < numRows; i++) {rows[i] = "";}int loc = 0;boolean down = false;for (int i = 0; i < s.length(); i++) {rows[loc] += s.substring(i, i + 1);if (loc == 0 || loc == numRows - 1) {down = !down;}loc += down ? 1 : -1;}//遍历数组,将数组中的元素连接起来String res = "";for (String row : rows) {res += row;}return res;}
}

相关文章:

  • 基于Echarts的超市销售可视化分析系统(数据+程序+论文)
  • fastadmin学习01-windows下安装部署
  • Flink基于Hudi维表Join缺陷解析及解决方案
  • JimuReport积木报表 v1.7.4 公测版本发布,免费的JAVA报表工具
  • Vivado Lab Edition
  • LabVIEW电动汽车直流充电桩监控系统
  • 全方位保障企业远控安全,贝锐向日葵首发远程办公安全白皮书
  • day69实现MyBatis 的Mapper接口 封装SqlSession对象 mapper接口形参怎么给占位符赋值
  • Knative 助力 XTransfer 加速应用云原生 Serverless 化
  • OpenCV的图像颜色空间转换、缩放、裁剪与旋转
  • 葵花卫星影像应用场景及数据获取
  • 机器学习优化算法(深度学习)
  • AI短视频制作一本通:文本生成视频、图片生成视频、视频生成视频
  • 十一、Spring源码学习之registerListeners方法
  • 2024华为软件精英挑战赛记录
  • Android 架构优化~MVP 架构改造
  • ERLANG 网工修炼笔记 ---- UDP
  • ES6 学习笔记(一)let,const和解构赋值
  • ESLint简单操作
  • JavaScript 基本功--面试宝典
  • Java到底能干嘛?
  • MaxCompute访问TableStore(OTS) 数据
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • Vue2 SSR 的优化之旅
  • vue-loader 源码解析系列之 selector
  • vuex 学习笔记 01
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • 关于for循环的简单归纳
  • 简析gRPC client 连接管理
  • 前端之Sass/Scss实战笔记
  • 使用docker-compose进行多节点部署
  • 使用Gradle第一次构建Java程序
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 新书推荐|Windows黑客编程技术详解
  • 延迟脚本的方式
  • 赢得Docker挑战最佳实践
  • ​卜东波研究员:高观点下的少儿计算思维
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • #QT(一种朴素的计算器实现方法)
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (论文阅读11/100)Fast R-CNN
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .NET Core 中插件式开发实现
  • .Net Core和.Net Standard直观理解
  • .Net IE10 _doPostBack 未定义
  • .net web项目 调用webService
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .Net6支持的操作系统版本(.net8已来,你还在用.netframework4.5吗)
  • .NET与java的MVC模式(2):struts2核心工作流程与原理
  • .Net中的集合
  • .net专家(张羿专栏)
  • []利用定点式具实现:文件读取,完成不同进制之间的
  • [04]Web前端进阶—JS伪数组