上海建站 seo,平面设计接单攻略电子书,兰州做网站公司哪家好,网站开发与设计的参考文献文章目录 题目思路代码结果 题目
题目链接 你在和朋友一起玩 猜数字#xff08;Bulls and Cows#xff09;游戏#xff0c;该游戏规则如下#xff1a;
写出一个秘密数字#xff0c;并请朋友猜这个数字是多少。朋友每猜测一次#xff0c;你就会给他一个包含下述信息的提… 文章目录 题目思路代码结果 题目
题目链接 你在和朋友一起玩 猜数字Bulls and Cows游戏该游戏规则如下
写出一个秘密数字并请朋友猜这个数字是多少。朋友每猜测一次你就会给他一个包含下述信息的提示
猜测数字中有多少位属于数字和确切位置都猜对了称为 “Bulls”公牛 有多少位属于数字猜对了但是位置不对称为 “Cows”奶牛。也就是说这次猜测中有多少位非公牛数字可以通过重新排列转换成公牛数字。 给你一个秘密数字 secret 和朋友猜测的数字 guess 请你返回对朋友这次猜测的提示。
提示的格式为 “xAyB” x 是公牛个数 y 是奶牛个数A 表示公牛B 表示奶牛。
请注意秘密数字和朋友猜测的数字都可能含有重复数字。 示例 1 输入secret “1807”, guess “7810” 输出“1A3B” 解释数字和位置都对公牛用 ‘|’ 连接数字猜对位置不对奶牛的采用斜体加粗标识。 “1 8 0 7” ***| “7 8 1 0” 示例 2 输入secret “1123”, guess “0111” 输出“1A1B” 解释 注意两个不匹配的 1 中只有一个会算作奶牛数字猜对位置不对。通过重新排列非公牛数字其中仅有一个 1 可以成为公牛数字。 提示 1 secret.length, guess.length 1000secret.length guess.lengthsecret 和 guess 仅由数字组成 思路
根据这道题的意思对于公牛我们可以才用遍历的方式统计满足 s e c r e t [ i ] g u e s s [ i ] secret[i]guess[i] secret[i]guess[i]一共有多少个下标 i i i符合情况即可。对于奶牛而言需要满足数字猜对但是位置不对我们可以直接统计俩个字符串中0到9每一位数字放别有多少个。然后对于每一个数字取最小值即可。累加之后可以得到奶牛的个数。
代码
class Solution {
public:string getHint(string secret, string guess) {int a0,b0;int sec[10]{},gue[10]{};int lensecret.size();for(int i0;ilen;i){if(secret[i]guess[i])a;else {sec[secret[i]-0];gue[guess[i]-0];}}for(int i0;i10;i){bmin(sec[i],gue[i]);}string ansto_string(a);ansA;ansto_string(b);ansB;return ans;}
};结果