题目来源 蓝桥杯【旋转】
解题思路
观察输入输出,符合栈的数据结构。
输入 n 行 m 列,所以我们只先构造 m 个栈,然后只需要一个双重循环将第 j 列数据放到第 j 个栈中即可。
代码
import java.util.Scanner; import java.util.Stack; // 1:无需package // 2: 类名必须Main, 不可修改 public class Main { private static Stack<Integer>[] stacks; public static void main(String[] args) { Scanner scan = new Scanner(System.in); int n = scan.nextInt(); int m = scan.nextInt(); stacks = new Stack[m]; for (int i = 0; i < m; i++) { stacks[i] = new Stack<Integer>(); } for(int i=0;i<n;i++){ for (int j = 0; j < m; j++) { int num = scan.nextInt(); stacks[j].push(num); } } scan.close(); for (int i = 0; i <m; i++) { for (int j = 0; j < n; j++) { System.out.print(stacks[i].peek()+" "); stacks[i].pop(); } System.out.println(); } } }
运行结果