6. Z 字形变换
2021/4/10 18:43:53
本文主要是介绍6. Z 字形变换,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
package leetcode; public class demo_6 { public String convert(String s, int numRows) { //记录列号 int numCols; String ss=""; //如果只有一行,则不是N型,所以先排除 if(numRows==1) { return ss=s; } if(s.length()%(2*numRows-2)==0) { numCols=s.length()/(2*numRows-2)*(1+numRows-2); } else { numCols=(s.length()/(2*numRows-2)+1)*(1+numRows-2); } char [][] str=new char[numRows][numCols]; for(int i=0;i<numRows;i++) { for(int j=0;j<numCols;j++) { str[i][j]='0'; } } int row=1; int col=0; //判断是否需要重新开始一列 int flag=1; str[0][0]=s.charAt(0); for(int i=1;i<s.length();i++) { if(flag==1&&row!=numRows-1) { str[row][col]=s.charAt(i); row=row+1; continue; } if(flag==1&&row==numRows-1) { str[row][col]=s.charAt(i); flag=0; row=row-1; col=col+1; continue; } if(flag==0&&row!=0) { str[row][col]=s.charAt(i); row=row-1; col=col+1; continue; } if(flag==0&&row==0) { str[row][col]=s.charAt(i); flag=1; row=row+1; continue; } } for(int i=0;i<numRows;i++) { for(int j=0;j<numCols;j++) { if(str[i][j]!='0') { ss=ss+str[i][j]; } } } return ss; } public static void main(String[] args) { // TODO Auto-generated method stub demo_6 d6=new demo_6(); String s="PAYPALISHIRING"; System.out.println(d6.convert(s, 3)); } }
这篇关于6. Z 字形变换的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-04-26敏捷开发:想要快速交付就必须舍弃产品质量?
- 2024-04-26静态代码分析的这些好处,我竟然都不知道?
- 2024-04-26你在测试金字塔的哪一层?(下)
- 2024-04-26快刀斩乱麻,DevOps让代码评审也自动起来
- 2024-04-262024年最好用的10款ER图神器!
- 2024-04-2203-为啥大模型LLM还没能完全替代你?
- 2024-04-2101-大语言模型发展
- 2024-04-17基于SpringWeb MultipartFile文件上传、下载功能
- 2024-04-14个人开发者,Spring Boot 项目如何部署
- 2024-04-14RAG应用开发实战02-相似性检索的关键 - Embedding