当前位置:网站首页>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 <= 1000
s
By 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;
}
}
边栏推荐
- GEE(三):计算两个波段间的相关系数与相应的p值
- 2021-01-11
- 14、 Two methods of database export and import
- Dynamics 365 find field filtering
- Classification and prediction of heartbeat signal
- Unity3D学习笔记4——创建Mesh高级接口
- [microservices SCG] gateway integration Sentinel
- 网络安全-sqlmap与DVWA爆破
- U盘拷贝东西时,报错卷错误,请运行chkdsk
- Kubernetes' simplified data storage storageclass (creation, deletion and initial use)
猜你喜欢
二叉树(Binary Tree)
聊聊支付流程的设计与实现逻辑
LeeCode -- 6. Z 字形变换
Software test classification
30讲 线性代数 第五讲 特征值与特征向量
Wechat forum exchange applet system graduation design completion (8) graduation design thesis template
When copying something from the USB flash disk, an error volume error is reported. Please run CHKDSK
Talk about the design and implementation logic of payment process
ROS2专题(03):ROS1和ROS2的区别【01】
Binary tree
随机推荐
ArcGIS:矢量要素相同字段属性融合的两种方法
Statistical method for anomaly detection
Dynamics 365 查找字段过滤
定位到最底部[通俗易懂]
微信论坛交流小程序系统毕业设计毕设(4)开题报告
网络安全-CSRF
leetcode-520. 检测大写字母-js
树后台数据存储(採用webmethod)[通俗易懂]
How to generate unique file names
Matlab 信号处理【问答随笔·2】
USB(十四)2022-04-12
Clean C disk
13、 System optimization
十四、数据库的导出和导入的两种方法
Wechat forum exchange applet system graduation design completion (6) opening defense ppt
Brush question 4
The 19th Zhejiang Provincial Collegiate Programming Contest 2022浙江省赛 F.EasyFix 主席树
力扣解法汇总648-单词替换
Unity3D学习笔记6——GPU实例化(1)
Install Fedora under RedHat