法一
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Scanner;
import java.util.Set;
public class Main {
public static void main(String[] args){
Scanner cin=new Scanner(System.in);
int l =cin.nextInt();
String s=cin.next();
int h=s.length()/l;
char[][] a=new char [h][l];
int k=0;
for(int i=0;i<h;i++)
{
for(int j=0;j<l;j++)
{
if(i%2==0)
{
a[i][j]=s.charAt(k++);
}
else
{
a[i][l-j-1]=s.charAt(k++);
}
}
}
for(int i=0;i<l;i++)
{
for(int j=0;j<h;j++)
{
System.out.print(a[j][i]);
}
}
}
}
法二
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
String s = sc.next();
int row = s.length() / n;
char[][] a = new char[row][n];
for (int i = 0; i < row; i++) {
String s1 = s.substring(i * n, i * n + n);
if (i % 2 == 0)
a[i] = s1.toCharArray();
else
a[i] = new StringBuffer(s1).reverse().toString().toCharArray();
}
for(int i=0;i<n;i++){
for(int j=0;j<row;j++){
System.out.print(a[j][i]);
}
}
}
}
注意
1、分行列的关系
2、行中心对称旋转
3、转置矩阵的使用