题解 | #矩阵交换#
矩阵交换
https://www.nowcoder.com/practice/ec44d4ff8c794b2f9205bdddbde96817
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 存矩阵
int width = in.nextInt();
int height = in.nextInt();
int[][] matrix = new int[width][height];
for (int i = 0; i < width; i++) {
for (int j = 0; j < height; j++) {
matrix[i][j] = in.nextInt();
}
}
// 执行操作
in.nextLine(); // 防止报错。
int doNum = Integer.parseInt(in.nextLine());
for (int i = 0; i < doNum; i++) {
changeMatrix(in, matrix);
}
// 输出结果
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[0].length; j++) {
System.out.print(matrix[i][j] + " ");
}
System.out.println();
}
}
// 操作
public static void changeMatrix(Scanner in, int[][] matrix) {
String[] oprate = in.nextLine().split(" ");
int n = Integer.parseInt(oprate[1]); // n
int m = Integer.parseInt(oprate[2]); // m
switch(oprate[0]) {
case "r": // 行行变换
for (int i = 0; i < matrix.length; i++) { // 行
if (i + 1 != n) {
continue;
}
for (int j = 0; j < matrix[0].length; j++) { // 列
int changed = matrix[m - 1][j];
matrix[m - 1][j] = matrix[i][j];
matrix[i][j] = changed;
}
}
break;
case "c": // 列列变换
for (int i = 0; i < matrix.length; i++) { // 行
for (int j = 0; j < matrix[0].length; j++) { // 列
if (j + 1 == n) {
int changed = matrix[i][m - 1];
matrix[i][m - 1] = matrix[i][j];
matrix[i][j] = changed;
}
}
}
break;
}
}
}