题解 | #矩阵交换#
矩阵交换
http://www.nowcoder.com/practice/ec44d4ff8c794b2f9205bdddbde96817
import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // 定义二维数组,分配空间。 String[] nm = br.readLine().split(" "); int n = Integer.parseInt(nm[0]); int m = Integer.parseInt(nm[1]); String[][] array = new String[n][m]; // 将指定值分配给数组的每个元素。 for (int i = 0; i < n; i++) { String[] arr = br.readLine().split(" "); for (int j = 0; j < m; j++) { array[i][j] = arr[j]; } } // 数组内容开始互换k次。 int k = Integer.parseInt(br.readLine()); for (int i = 0; i < k; i++) { String[] tabArr = br.readLine().split(" "); change(array, tabArr); } // 输出数组内容 System.out.print(printArr(array, n, m)); } public static void change(String[][] arr, String[] ar) { int a = Integer.parseInt(ar[1]) - 1; int b = Integer.parseInt(ar[2]) - 1; if (ar[0].equals("r")) { String[] temp = arr[a]; arr[a] = arr[b]; arr[b] = temp; } else if (ar[0].equals("c")) { for (int i = 0; i < arr.length; i++) { String temp = arr[i][a]; arr[i][a] = arr[i][b]; arr[i][b] = temp; } } } public static String printArr(String[][] arr, int row, int column) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < row; i++) { for (int j = 0; j < column; j++) { sb.append(arr[i][j]).append(" "); } sb.append("\n"); } return sb.toString(); } }