保定哪个公司做网站好,梅州建站哪里好,网站 视觉上,什么网站算是h5做的题目来源
力扣299猜数字游戏
题目概述
你在和朋友一起玩 猜数字#xff08;Bulls and Cows#xff09;游戏#xff0c;该游戏规则如下#xff1a;
写出一个秘密数字#xff0c;并请朋友猜这个数字是多少。朋友每猜测一次#xff0c;你就会给他一个包含下述信息的提示…题目来源
力扣299猜数字游戏
题目概述
你在和朋友一起玩 猜数字Bulls and Cows游戏该游戏规则如下
写出一个秘密数字并请朋友猜这个数字是多少。朋友每猜测一次你就会给他一个包含下述信息的提示
猜测数字中有多少位属于数字和确切位置都猜对了称为 Bulls公牛有多少位属于数字猜对了但是位置不对称为 Cows奶牛。也就是说这次猜测中有多少位非公牛数字可以通过重新排列转换成公牛数字。
给你一个秘密数字 secret 和朋友猜测的数字 guess 请你返回对朋友这次猜测的提示。
提示的格式为 xAyB x 是公牛个数 y 是奶牛个数A 表示公牛B 表示奶牛。
请注意秘密数字和朋友猜测的数字都可能含有重复数字。
思路分析
生成两个数组用于存放两个字符串中无法对应的字符串。 同时遍历两个字符串如果字符相同加入bulls如果不同就加入数组最后统计两个数组同一个字符位置对应的数字最小值。
代码实现
java实现
public class Solution {public String getHint(String secret, String guess) {int[] s new int[10];int[] g new int[10];int bulls 0;int cows 0;for (int i 0; i secret.length(); i) {char secretCurrent secret.charAt(i);char guessCurrent guess.charAt(i);if (secretCurrent guessCurrent) {bulls;}else {s[secretCurrent - 0];g[guessCurrent - 0];}}for (int i 0; i 10; i) {cows Math.min(s[i],g[i]);}return new StringBuilder().append(bulls).append(A).append(cows).append(B).toString();}
}c实现
class Solution {
public:string getHint(string secret, string guess) {vectorint s(10);vectorint g(10);int bulls 0;int cows 0;for (int i 0; i secret.size(); i) {if (secret[i] guess[i]) {bulls;}else {s[secret[i] - 0];g[guess[i] - 0];}}for (int i 0; i 10; i) {cows min(s[i], g[i]);}return to_string(bulls) A to_string(cows) B;}
};