LeetCode: Bulls and Cows

论文暂告一段落,闲着无聊到 LeetCode 刷刷题,蛤蛤蛤。

题目链接:Bulls and Cows

题目大意如下:

先给出一个数字串secret,再给出一个长度一样的猜测数字串guess。

对guess某个位置上的数字,若在secret串中的相同位置上存在相同的数字,则输出 1A,若有两个这种情况,则输出 2A;

当猜测数字串中除去完全匹配上位置的数字外,还有只猜中数字的情况,则猜中一个记为 1B,猜中两个记为 2B,secret中的数字不能被计数超过一次。

example 1 :
Secret number: “1807”
Friend’s guess: “7810”
Output: 1A3B

example 2 :
Secret number: “1123”
Friend’s guess: “0111”
Output: 1A1B



代码如下:

public static String getHint6(String secret, String guess) {
        char[] secrets = secret.toCharArray();
        char[] guesses = guess.toCharArray();

        int numA = 0, numB = 0;
        int length = guesses.length;

        for (int i = 0; i < length; i++) {
            if (secrets[i] == guesses[i]) {
                numA++;
            }
        }

        int[] countS = new int[10];
        int[] countG = new int[10];
        for (int i = 0; i < length; i++) {
            countS[secrets[i] - '0']++;
            countG[guesses[i] - '0']++;
        }
        for (int i = 0; i < countS.length; i++) {
            numB += countS[i] > countG[i] ? countG[i] : countS[i];
        }

        return numA + "A" + (numB - numA) + "B";
    }

运行效果:
提交后的运行效果



作业部落链接:https://www.zybuluo.com/NewWorld/note/339463

原文地址:https://www.cnblogs.com/read-the-spring-and-autumn-annals-in-night/p/12041941.html