【LeetCode算法 - JAVA】6.Z字形变换
开发工具与关键技术: C#
作者:奶糖不甜
撰写时间:2022.4.17
Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
题目描述:
将一个给定字符串 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"
class Solution {public String convert(String s, int numRows) {int n = s.length(), r = numRows;if (r == 1 || r >= n) {return s;}int t = r * 2 - 2;int c = (n + t - 1) / t * (r - 1);char[][] mat = new char[r][c];for (int i = 0, x = 0, y = 0; i < n; ++i) {mat[x][y] = s.charAt(i);if (i % t < r - 1) {++x; // 向下移动} else {--x;++y; // 向右上移动}}StringBuffer ans = new StringBuffer();for (char[] row : mat) {for (char ch : row) {if (ch != 0) {ans.append(ch);}}}return ans.toString();}
}
【LeetCode算法 - JAVA】6.Z字形变换相关推荐
- Java算法题:Z字形变换
Java算法题:Z字形变换 将一个给定字符串 s 根据给定的行数 numRows ,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "PAYPALISHIRING" 行 ...
- leetcode第六题Z字形变换心得记录
算法学习之路-坚持走下去 Z字形变换 题目描述 将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "LEETCODEISHIRING" 行 ...
- leetcode刷题六z字形变换
将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列.比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下:L C I R E T O ...
- leetcode第六题 Z字形变换
题目 将一个给定字符串 s 根据给定的行数 numRows ,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "PAYPALISHIRING" 行数为 3 时,排列如下 ...
- leecode算法题之Z字形变换
题目描述: 将一个给定字符串 s 根据给定的行数 numRows ,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "PAYPALISHIRING" 行数为 3 时,排 ...
- Leetcode题库 6.Z字形变换(C实现)
文章目录 思路 代码 思路 将字符串s使用字符'@'填充至W形或者V形 得到顶点与谷点分别存于New_start,New_end 外层循环遍历第1行至第numRows行 内层循环遍历每一行 例: 代码 ...
- leetcode刷题:z字形变换
题目: 图解思路 实现代码如下: class Solution { public:string convert(string s, int numRows) {if(numRows < 2) r ...
- java编写字母z算法_【Java】【每日算法/刷穿 LeetCode】6. Z 字形变换(中等)
首页 专栏 java 文章详情 0 [每日算法/刷穿 LeetCode]6. Z 字形变换(中等) 宫水三叶发布于 今天 12:03 题目描述 将一个给定字符串 s 根据给定的行数 numRows , ...
- Z 字形变换 C++实现 java实现 leetcode系列(六)
Z 字形变换 java实现 C++实现 将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "LEETCODEISHIRING" 行数为 ...
- Java实现 LeetCode 6 Z字形变换
6. Z 字形变换 将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下: L ...
最新文章
- 下运行maven命令_实话实说 | 这些maven命令,你会几个?
- 构建现代产业体系 农民丰收节·林裕豪:从玉农业落实“链长制”1-09-27
- 【图论】【Kosaraju】刻录光盘(ssl 2344)
- LeetCode 1484. 克隆含随机指针的二叉树(哈希/递归)
- SSH+Oracle10G抛Disabling contextual LOB creation as createClob() m
- 洛谷 P1426 小鱼会有危险吗(C语言)
- 拒绝“佛系”程序员!
- python爬取热门新闻每日排行_用python查看百度搜索中今日热点事件排行榜
- c#中byte数组0x_数组指针和指针数组的区别
- 3802.消灭数组-AcWing题库
- 卡巴斯基离线病毒库升级办法
- Java加密、解密Word文档
- 清除阿里云服务器挖矿程序过程
- TCP和 UDP的区别
- 泰森多边形(Voronoi彩图)的matlab绘制——2
- SegmentFault 社区访谈 | 依云: 一只想依偎在云上的野百合
- 【mysql】关闭mysql缓存的方法
- 意大利作曲家维瓦尔第
- OLM网络营销简述——简单谈小米
- 创新型服务“智能推荐”——互联网平台建设 1