码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2020-11-01 21:17:20      阅读:11      评论:0      收藏:0      [点我收藏+]

标签:比较   用户   problems   https   i++   guess   说明   public   ==   

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. [字符串][哈希表][缓存]猜数字游戏

标签:比较   用户   problems   https   i++   guess   说明   public   ==   

原文地址:https://www.cnblogs.com/SuPhXLiN/p/13868160.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!