# LeetCode算法6：java Z 字形变换

L C I R
E T O E S I I G
E D H N

string convert(string s, int numRows);

L D R
E O E I I
E C I H N
T S G

1、对于跳转方向的思路；
2、对于边界的处理，即行数为1时要满足要求。这里将行数为1直接作为原结果返回，没有参与到算法的运算。

``````package _01_50;

public class _06ZigZagConversion{

public String convert(String s , int nums){

if(nums<2) return s;

String[] rows= new String[nums];

for(int i=0 ;i< nums;i++){
rows[i]="";
}
//it is useful for the j=0
int direction = -1;
//for the rounding
int count = nums-1;
int row = 0;
System.out.println(s.length());

for(int j=0;j< s.length();j++){
rows[row]=rows[row]+s.charAt(j);
//make the direction to be plus for first time
if(j%count == 0){
direction = -direction;
}
row = row + direction;
System.out.println(row);
}

String convertStr = "";
for(int i = 0;i< nums;i++){
convertStr = convertStr+rows[i];
}
return convertStr;
}

public static void main(String[] arg){

_06ZigZagConversion ZigZagConversion = new _06ZigZagConversion();

String input = "PAYPALISHIRING";
int nums = 1;
String output = ZigZagConversion.convert(input,nums);
System.out.println(output);
}
}
``````

Z字型变换

原文作者：Z字形编排问题
原文地址: https://blog.csdn.net/xihuanyuye/article/details/85121252
本文转自网络文章，转载此文章仅为分享知识，如有侵权，请联系博主进行删除。