当前位置:网站首页>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;
}
}
边栏推荐
- V20变频器手自动切换(就地远程切换)的具体方法示例
- Anta DTC | Anta transformation, building a growth flywheel that is not only FILA
- 2021-01-11
- Wechat forum exchange applet system graduation design completion (7) Interim inspection report
- USB (十八)2022-04-17
- CXF call reports an error. Could not find conduct initiator for address:
- 微信论坛交流小程序系统毕业设计毕设(2)小程序功能
- The 19th Zhejiang Provincial Collegiate Programming Contest 2022浙江省赛 F.EasyFix 主席树
- Unity3D学习笔记6——GPU实例化(1)
- 2021ICPC上海 H.Life is a Game Kruskal重构树
猜你喜欢

Technology at home and abroad people "see" the future of audio and video technology

七月第一周

Installing spss25

Develop those things: go plus c.free to free memory, and what are the reasons for compilation errors?

微信论坛交流小程序系统毕业设计毕设(5)任务书

ROS2专题(03):ROS1和ROS2的区别【02】

高级程序员必知必会,一文详解MySQL主从同步原理,推荐收藏

When copying something from the USB flash disk, an error volume error is reported. Please run CHKDSK

Digital collections accelerated out of the circle, and marsnft helped diversify the culture and tourism economy!

PMP项目管理考试过关口诀-1
随机推荐
二叉树(Binary Tree)
十三、系统优化
Network security - install CentOS
FPGA基础篇目录
[microservices SCG] gateway integration Sentinel
网络安全-安装CentOS
Gee (III): calculate the correlation coefficient between two bands and the corresponding p value
Grid
VS扩展工具笔记
Network security - phishing
ArcGIS:矢量要素相同字段属性融合的两种方法
2021ICPC上海 H.Life is a Game Kruskal重构树
Installing vmtools is gray
Bea-3xxxxx error code
智慧社區和智慧城市之間有什麼异同
智慧社区和智慧城市之间有什么异同
【编译原理】词法分析设计实现
Wechat forum exchange applet system graduation design completion (8) graduation design thesis template
Anta DTC | Anta transformation, building a growth flywheel that is not only FILA
13、 System optimization