299. [字符串][哈希表][缓存]猜数字游戏

Posted suphxlin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了299. [字符串][哈希表][缓存]猜数字游戏相关的知识,希望对你有一定的参考价值。

299. 猜数字游戏

在一次遍历中进行逐位比较,可以完成的事情有两件:① 两者相同,A++ ② 用一个整型数组作为缓存,当两者不同时,将秘密数字和猜测数字分别缓存,秘密数字的计数位如果为负,说明之前缓存过猜测数字,反之,之前缓存过秘密数字,B++。

// 执行用时: 8 ms , 在所有 Java 提交中击败了 41.03% 的用户 
// 内存消耗: 38.7 MB , 在所有 Java 提交中击败了 83.46% 的用户
class Solution {
    public String getHint(String secret, String guess) {
        int[] cache = new int[10];
        int a = 0, b = 0, len = secret.length();

        for(int i = 0; i < len; i++){
            char sec = secret.charAt(i);
            char gue = guess.charAt(i);
            if(sec == gue){
                a++;
            } else {
                if(cache[sec - ‘0‘]++ < 0)  b++;
                if(cache[gue - ‘0‘]-- > 0)  b++;
            }
        }

        return Integer.toString(a) + "A" + Integer.toString(b) + "B";
    }
}

以上是关于299. [字符串][哈希表][缓存]猜数字游戏的主要内容,如果未能解决你的问题,请参考以下文章

leetcode每日一题-299:猜数字游戏

Leetcode-299 猜数字游戏

LeetCode-299. 猜数字游戏

LeetCode-299. 猜数字游戏

leetcode打卡——299. 猜数字游戏(求交集or标记法)

leetcode 299. 猜数字游戏(Bulls and Cows)