🌗 299. 猜数字游戏

吞佛童子2022年10月10日
  • algorithm
  • String
小于 1 分钟

🌗 299. 猜数字游戏

难度: 🌗

问题描述

img_5.png


解法

class Solution {
    public String getHint(String secret, String guess) {
        // 思路:
        // 需要先找出公牛,然后计算剩余的字符判断是否存在奶牛
        // 将其中一个字符串中的字符放入 桶 中 - 充当 map 的作用
        char[] s = secret.toCharArray();
        char[] g = guess.toCharArray();
        int len = s.length;
        
        int a = 0;
        for(int i = 0; i < len; i ++) {
            if(s[i] == g[i]) {
                a ++;
                s[i] = '#';
                g[i] = '#';
            }
        }

        int b = 0;
        int[] array = new int[10];
        for(int i = 0; i < len; i ++) {
            char c = s[i];
            if(c == '#') {
                continue;
            }
            int index = c - '0';
            array[index] ++;
        }
        for(int j = 0; j < len; j ++) {
            char c = g[j];
            if(c == '#') {
                continue;
            }
            int index = c - '0';
            if(array[index] == 0) {
                // 说明该字符在 secret 中不存在
                continue;
            }
            b ++;
            array[index] --;
        }
        return "" + a + "A" + b + "B";
    }
}

输出

img_4.png

上次编辑于: 2022/10/10 下午8:43:48
贡献者: liuxianzhishou