在java中如何逆时针旋转此数组?
有个问题。请帮帮我
输入一个星束。(星=“*”) 假设你一个接一个地输入一堆星星。 逆时针旋转90度输出。 在第一行中,用空格分隔星束。存储星形捆绑包的数组必须用空格字符(“”)初始化。 从第二行开始,打印一个旋转星
import java.util.Scanner;
public class Spin {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n = sc.nextInt();
int[][] A = new int[n][n];
int K = 1;
for(int i=0; i<n; i++){
for(int j=0; j<n; j++){
A[i][j] = K++;
}
}
public static int[][] leftRotate(int n, int[][] A) {
int[][] B = new int[n][n];
for(int i=0; i<n; i++){
for(int j=0; j<n; j++){
B[i][j] = A[j][n-i-1];
}
}
}
}
}
# 1 楼答案
使用
s = sc.nextLine()
将输入作为字符串。例如,如果用户输入*** * **
,则得到与s = "*** * **"
相同的结果在空格上拆分行,得到
String[] arr = {"***", "*", "**"}
找到最长的字符串,例如,在本例中,您得到
longest = 3
数组的大小是生成的三维网格的宽度,最长的字符串是网格的高度,因此创建网格:
char[][] grid = new char[longest][arr.length];
用空格填充网格
现在迭代
arr
并从底部开始构建网格的每一列打印网格
测试
输出