当前位置:网站首页>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;
}
}
边栏推荐
猜你喜欢

ArcGIS: field assignment_ The attribute table field calculator assigns values to fields based on conditions

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

leetcode-520. 检测大写字母-js

iNFTnews | Web5 vs Web3:未来是一个过程,而不是目的地

Lecture 30 linear algebra Lecture 5 eigenvalues and eigenvectors

十三、系统优化

二叉树(Binary Tree)

Installing spss25

Binary tree

Are the microorganisms in the intestines the same as those on the skin?
随机推荐
微信论坛交流小程序系统毕业设计毕设(1)开发概要
【编译原理】词法分析设计实现
Txt file virus
【微服务|SCG】gateway整合sentinel
Matlab-SEIR传染病模型预测
Network security -beef
U盘拷贝东西时,报错卷错误,请运行chkdsk
Redhat下安装fedora
GEE(四):计算两个变量(影像)之间的相关性并绘制散点图
What are the similarities and differences between smart communities and smart cities
Network security - Eternal Blue
定位到最底部[通俗易懂]
Mitsubishi PLC SLmP (MC) protocol
php 使用阿里云存储
海内外技术人们“看”音视频技术的未来
Software test classification
Specific method example of V20 frequency converter manual automatic switching (local remote switching)
30讲 线性代数 第五讲 特征值与特征向量
Clean C disk
./ setup. Insufficient sh permission