当前位置:网站首页>LeeCode -- 6. Zigzag transformation
LeeCode -- 6. Zigzag transformation
2022-07-07 23:18:00 【Diligent classmate Kelsen】
6. Z Font conversion
Will a given string s According to the given number of rows numRows , From top to bottom 、 Left to right Z Font arrangement .
For example, the input string is "PAYPALISHIRING" The number of rows is 3 when , Arranged as follows :
P A H N
A P L S I I G
Y I R
after , Your output needs to be read line by line from left to right , Generate a new string , such as :"PAHNAPLSIIGYIR".
Please implement this function to transform a string into a specified number of lines :
string convert(string s, int numRows);
Example 1:
Input :s = "PAYPALISHIRING", numRows = 3
Output :"PAHNAPLSIIGYIR"
Example 2:
Input :s = "PAYPALISHIRING", numRows = 4
Output :"PINALSIGYAHRPI"
explain :
P I N
A L S I G
Y A H R
P I
Example 3:
Input :s = "A", numRows = 1
Output :"A"
Tips :
1 <= s.length <= 1000sBy the English letters ( Lowercase and upper case )、','and'.'form1 <= numRows <= 1000
Algorithm implementation ideas :
We put the string s As an array , This array subscript counts from zero , Until s The length of . according to Z Transformational thinking , hold s Fill in the table with the subscript of .
When numRows=3 When , The order is as follows :
[ Failed to transfer the external chain picture , The origin station may have anti-theft chain mechanism , It is suggested to save the pictures and upload them directly (img-CRRNabhx-1657178615583)(http://nas.hepcloud.top:6391/images/2022/07/07/image-20220707150657666.png)]
When numRows=6 When , The order is as follows :

When numRows=n+1 When , The order is as follows :

Let's start with line zero and take characters , Take the first 0 individual , Then take the 2n individual , And then take 4n individual , Get the string all the way s The maximum length that can be taken . Then go to the first line , Take the first 1 individual , Then take the 2n-1 individual , Then take the 2n+1 individual , Get the string all the way s The maximum length that can be taken . Follow this idea until n That's ok . Because we stipulate that numRows=n+1, The last line is n That's ok .
Let's set the variable i from 0 To n Cycle through , Which line is marked . Set a variable j,j=0,2,4,6,8, … The reason for this setting is , Because it is convenient to calculate the subscript position of a line .j * n + i For the current element , that (j + 2) * n - i Is the position of the next element immediately after it , If there is one . Limit j * n + i and (j + 2) * n - i All less than s It's just as long as you want .
class Solution {
public String convert(String s, int numRows) {
int n = numRows - 1;
String res = "";
if(numRows == 1){
return s;
}
for(int i = 0; i < numRows; i++){
for(int j = 0; j * n + i < s.length(); j = j + 2){
//j * n + i For the current element
if(j * n + i < s.length()){
res = res + String.valueOf(s.charAt(j * n + i));
}
//(j + 2) * n - i yes j * n + i The next element
if((j + 2) * n - i < s.length() && i != 0 && i != n){
res = res + String.valueOf(s.charAt((j + 2) * n - i));
}
}
}
return res;
}
}
边栏推荐
- 1. Sum of two numbers
- Network security - joint query injection
- UE4_UE5蓝图command节点的使用(开启关闭屏幕响应-log-发布全屏显示)
- 高级程序员必知必会,一文详解MySQL主从同步原理,推荐收藏
- Handling file exceptions
- 网络安全-永恒之蓝
- 微信论坛交流小程序系统毕业设计毕设(6)开题答辩PPT
- STL标准模板库(Standard Template Library)一周学习总结
- Wechat forum exchange applet system graduation design completion (4) opening report
- Clean C disk
猜你喜欢

Lecture 30 linear algebra Lecture 5 eigenvalues and eigenvectors

微信论坛交流小程序系统毕业设计毕设(2)小程序功能

Introduction to redis and jedis and redis things

Brush question 3

Binary tree

Cases of agile innovation and transformation of consumer goods enterprises

Innovation today | five key elements for enterprises to promote innovation

Transform XL translation

13、 System optimization

2021ICPC上海 H.Life is a Game Kruskal重构树
随机推荐
iNFTnews | Web5 vs Web3:未来是一个过程,而不是目的地
14、 Two methods of database export and import
网络安全-CSRF
智慧社区和智慧城市之间有什么异同
Txt file virus
Byte hexadecimal binary understanding
微信论坛交流小程序系统毕业设计毕设(5)任务书
[untitled] reprint melting ice - track icedid server with a few simple steps
How to operate DTC community?
Opencv scalar passes in three parameters, which can only be displayed in black, white and gray. Solve the problem
Installing spss25
网络安全-burpsuit
Network security - joint query injection
海内外技术人们“看”音视频技术的未来
Wechat forum exchange applet system graduation design completion (7) Interim inspection report
漏洞复现----49、Apache Airflow 身份验证绕过 (CVE-2020-17526)
V20变频器手自动切换(就地远程切换)的具体方法示例
oc 可变參数传递
Locate to the bottom [easy to understand]
2021-01-11