题解 | #矩阵交换#

矩阵交换

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();
    }
}

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务