百度研发A卷 9.7 (100、100、25)

1.
import java.util.Scanner;
/*
100
 */
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int N = in.nextInt();
        int K = in.nextInt();

        int[][] dp = new int[N][N];
        for (int i = 0; i < N; i++) {
            for (int j = 0; j < N; j++) {
                dp[i][j] = in.nextInt();
            }
        }

        for (int i = 0; i < N * K; i++) {
            for (int j = 0; j < N * K; j++) {
                int x = i / K;
                int y = j / K;
                System.out.print(dp[x][y] + " ");
            }
            System.out.println();
        }
    }
}
2.
主要是考虑各种条件,使用string
可以自己测试
23011、1422 、 231103 这三个用例试试
import java.util.Scanner;
/*
100
 */
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = Integer.parseInt(in.nextLine());
        for (int i = 0; i < n; i++) {
            String str = in.nextLine();
            int[] nums = new int[str.length()];
            for (int k = 0; k < str.length(); k++) {
                nums[k] = str.charAt(k) - '0';
            }
            boolean flag = false;
            for (int k = 0; k < nums.length; k++) {
                if (flag) {
                    nums[k] = 3;
                } else if (nums[k] >= 1 && nums[k] <= 3) {
                    continue;
                } else if (nums[k] > 3) {
                    flag = true;
                    nums[k] = 3;
                } else {
                    if (!flag) {
                        int temp = k - 1;
                        while (temp != 0 && nums[temp] == 1) {
                            temp--;
                        }
                        nums[temp]--;
                        temp++;
                        for (; temp < k; temp++) {
                            nums[temp] = 3;
                        }
                        flag = true;
                    }
                    nums[k] = 3;
                }
            }

            int idx = 0;
            for (; idx < nums.length; idx++) {
                if (nums[idx] != 0) {
                    break;
                }
            }
            StringBuilder sb = new StringBuilder();
            for (; idx < nums.length; idx++) {
                sb.append(nums[idx]);
            }
            System.out.println(sb);
        }
    }
}
3. 只有25  等大佬题解
import java.util.HashMap;
import java.util.Scanner;

/*
25%
 */
public class Main {
    static int res = 0;

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int k = in.nextInt();
        in.nextLine();
        char[] chs = in.nextLine().toCharArray();
        HashMap<Character, Integer> map = new HashMap<>();
        if ( n < 32) {
            help(map, chs, 0, k);
        }
        System.out.println(res);
    }

    public static void help(HashMap<Character, Integer> map, char[] chs, int idx, int len) {
        if (map.size() == len) {
            res++;
            res %= (10e9 + 7);
        }
        if (map.size() > len || idx >= chs.length) {
            return;
        }
        for (int i = idx; i < chs.length; i++) {
            if (map.containsKey(chs[i])) {
                map.put(chs[i], map.getOrDefault(chs[i], 0) + 1);
                help(map, chs, i + 1, len);
                map.put(chs[i], map.get(chs[i]) - 1);
//                int l = map.get(chs[i]);
//                if (l == 1) {
//                    map.remove(chs[i]);
//                }
//                else {
//                    map.put(chs[i], l - 1);
//                }

            } else if (map.size() < len){
                map.put(chs[i], 1);
                help(map, chs, i + 1, len);
                map.remove(chs[i]);
            }
        }
    }
}




#百度##笔经#
全部评论

相关推荐

微风不断:兄弟,你把四旋翼都做出来了那个挺难的吧
点赞 评论 收藏
分享
10-27 17:26
东北大学 Java
点赞 评论 收藏
分享
2 5 评论
分享
牛客网
牛客企业服务