[leetcode299] 299. Bulls and Cows

public String getHint(String secret, String guess) {    /*    判断bull 是通过比较两个字符串的每一位,每次相同就删除该字符出现的次数,因为后边的    要判断cow不能占用这些    判断cow只要检测出去被占用的还有没有该字符     */    //key记录字符,value记录出现的次数    Map<Character,Integer> map = new HashMap<>();    String res = "";    int a = 0;    int b = 0;    boolean[] boo = new boolean[secret.length()];    for (int i = 0; i < secret.length(); i++) {        char cur = secret.charAt(i);        int num = map.getOrDefault(cur,0);        num++;        map.put(cur,num);    }    //判断bull和cow不能一起,要先判断bull,因为如果在判断cow的过程中会占用,会影响bull    for (int i = 0; i < guess.length(); i++) {        char cur = guess.charAt(i);        if (cur==secret.charAt(i))        {            a++;            boo[i] = true;            map.put(cur,map.get(cur)-1);        }    }    for (int i = 0; i < guess.length(); i++) {        char cur = guess.charAt(i);        if (!boo[i]&&map.containsKey(cur)&&map.get(cur)>0)        {            b++;            map.put(cur,map.get(cur)-1);        }    }    res = a+"A"+b+"B";    return res;}

原文地址:https://www.cnblogs.com/stAr-1/p/8323704.html

时间: 2024-12-17 09:49:05

[leetcode299] 299. Bulls and Cows的相关文章

299. Bulls and Cows

题目: You are playing the following Bulls and Cows game with your friend: You write down a number and ask your friend to guess what the number is. Each time your friend makes a guess, you provide a hint that indicates how many digits in said guess matc

299. Bulls and Cows via java

class Solution { public String getHint(String secret, String guess) { int bull = 0; int cow = 0; int[] mem = new int[10]; for(int i =0; i<secret.length();i++){ if(secret.charAt(i)==guess.charAt(i)){ bull++; }else{ if (mem[secret.charAt(i)-'0']++ < 0

LeetCode 299. Bulls and Cows

secret和guess按位读入,如果相等bull就加1,不相等就在各自统计不同数字出现次数的数组里加1(s_map[i]指secret里数字i出现的次数).最后s_map和g_map存的是各自string中位置不等的各数值出现的次数,cow等于两个数组中相同位置的最小数. 1 class Solution { 2 public: 3 string getHint(string secret, string guess) { 4 int s_map[10] = {0}, g_map[10] =

Leetcode 299 Bulls and Cows 字符串处理 统计

A就是统计猜对的同位同字符的个数 B就是统计统计猜对的不同位同字符的个数 非常简单的题 1 class Solution { 2 public: 3 string getHint(string secret, string guess) { 4 int cntA = 0, cntB = 0; 5 int sn[10] = {0}, gn[10] = {0}; 6 for(string::size_type i = 0; i < secret.size(); ++i){ 7 if(secret[i

LeetCode:Bulls and Cows - 猜数字游戏

1.题目名称 Bulls and Cows(猜数字游戏) 2.题目地址 https://leetcode.com/problems/bulls-and-cows/ 3.题目内容 英文:You are playing the following Bulls and Cows game with your friend: You write a 4-digit secret number and ask your friend to guess it, each time your friend g

LeetCode_299. Bulls and Cows

299. Bulls and Cows Easy You are playing the following Bulls and Cows game with your friend: You write down a number and ask your friend to guess what the number is. Each time your friend makes a guess, you provide a hint that indicates how many digi

[LeetCode299]Bulls and Cows

题目: You are playing the following Bulls and Cows game with your friend: You write down a number and ask your friend to guess what the number is. Each time your friend makes a guess, you provide a hint that indicates how many digits in said guess matc

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

目录 题目描述: 示例 1: 示例 2: 解法: 题目描述: 你正在和你的朋友玩 猜数字(Bulls and Cows)游戏:你写下一个数字让你的朋友猜.每次他猜测后,你给他一个提示,告诉他有多少位数字和确切位置都猜对了(称为"Bulls", 公牛),有多少位数字猜对了但是位置不对(称为"Cows", 奶牛).你的朋友将会根据提示继续猜,直到猜出秘密数字. 请写出一个根据秘密数字和朋友的猜测数返回提示的函数,用 A 表示公牛,用 B 表示奶牛. 请注意秘密数字和朋友

[LeetCode] Bulls and Cows

Bulls and Cows You are playing the following Bulls and Cows game with your friend: You write a 4-digit secret number and ask your friend to guess it, each time your friend guesses a number, you give a hint, the hint tells your friend how many digits