开发工具与关键技术: 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字形变换相关推荐

  1. Java算法题:Z字形变换

    Java算法题:Z字形变换 将一个给定字符串 s 根据给定的行数 numRows ,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "PAYPALISHIRING" 行 ...

  2. leetcode第六题Z字形变换心得记录

    算法学习之路-坚持走下去 Z字形变换 题目描述 将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "LEETCODEISHIRING" 行 ...

  3. leetcode刷题六z字形变换

    将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列.比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下:L C I R E T O ...

  4. leetcode第六题 Z字形变换

    题目 将一个给定字符串 s 根据给定的行数 numRows ,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "PAYPALISHIRING" 行数为 3 时,排列如下 ...

  5. leecode算法题之Z字形变换

    题目描述: 将一个给定字符串 s 根据给定的行数 numRows ,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "PAYPALISHIRING" 行数为 3 时,排 ...

  6. Leetcode题库 6.Z字形变换(C实现)

    文章目录 思路 代码 思路 将字符串s使用字符'@'填充至W形或者V形 得到顶点与谷点分别存于New_start,New_end 外层循环遍历第1行至第numRows行 内层循环遍历每一行 例: 代码 ...

  7. leetcode刷题:z字形变换

    题目: 图解思路 实现代码如下: class Solution { public:string convert(string s, int numRows) {if(numRows < 2) r ...

  8. java编写字母z算法_【Java】【每日算法/刷穿 LeetCode】6. Z 字形变换(中等)

    首页 专栏 java 文章详情 0 [每日算法/刷穿 LeetCode]6. Z 字形变换(中等) 宫水三叶发布于 今天 12:03 题目描述 将一个给定字符串 s 根据给定的行数 numRows , ...

  9. Z 字形变换 C++实现 java实现 leetcode系列(六)

    Z 字形变换  java实现 C++实现  将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "LEETCODEISHIRING" 行数为 ...

  10. Java实现 LeetCode 6 Z字形变换

    6. Z 字形变换 将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下: L ...

最新文章

  1. 下运行maven命令_实话实说 | 这些maven命令,你会几个?
  2. 构建现代产业体系 农民丰收节·林裕豪:从玉农业落实“链长制”1-09-27
  3. 【图论】【Kosaraju】刻录光盘(ssl 2344)
  4. LeetCode 1484. 克隆含随机指针的二叉树(哈希/递归)
  5. SSH+Oracle10G抛Disabling contextual LOB creation as createClob() m
  6. 洛谷 P1426 小鱼会有危险吗(C语言)
  7. 拒绝“佛系”程序员!
  8. python爬取热门新闻每日排行_用python查看百度搜索中今日热点事件排行榜
  9. c#中byte数组0x_数组指针和指针数组的区别
  10. 3802.消灭数组-AcWing题库
  11. 卡巴斯基离线病毒库升级办法
  12. Java加密、解密Word文档
  13. 清除阿里云服务器挖矿程序过程
  14. TCP和 UDP的区别
  15. 泰森多边形(Voronoi彩图)的matlab绘制——2
  16. SegmentFault 社区访谈 | 依云: 一只想依偎在云上的野百合
  17. 【mysql】关闭mysql缓存的方法
  18. 意大利作曲家维瓦尔第
  19. OLM网络营销简述——简单谈小米
  20. 创新型服务“智能推荐”——互联网平台建设 1

热门文章

  1. 【Arduino实验05 基于环境光的LED灯亮度感应控制】
  2. LeetCode_2289_使数组按非递减顺序排列
  3. 【微机原理与汇编】冒泡排序
  4. 最大正方形面积/数量(单调栈)
  5. 创维,彩电业的“技术咖”,能否赢得下一个十年?
  6. C语言中的布尔型变量
  7. Linux-基本指令02
  8. 淋巴瘤最新研究进展(2022年4月)
  9. 【第八章】文件与文件系统的压缩、打包与备份
  10. 做题心得篇12.26