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. [字符串][哈希表][缓存]猜数字游戏的主要内容,如果未能解决你的问题,请参考以下文章