Software Engineering

# Playing the Bulls and Cows Game in Java

## The challenge#

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 match your secret number exactly in both digit and position (called “bulls”) and how many digits match the secret number but locate in the wrong position (called “cows”). Your friend will use successive guesses and hints to eventually derive the secret number.

Write a function to return a hint according to the secret number and friend’s guess, use `A` to indicate the bulls and `B` to indicate the cows.

Please note that both secret number and friend’s guess may contain duplicate digits.

Example 1:

```Input: secret = "1807", guess = "7810"
Output: "1A3B"
Explanation: `1` bull and `3` cows. The bull is `8`, the cows are ```, 1 and 7.
```

**Example 2:**

Input: secret = "1123", guess = "0111"
Output: "1A1B"
Explanation: The 1st 1 in friend's guess is a bull, the 2nd or 3rd 1 is a cow.
**Note: **You may assume that the secret number and your friend’s guess only contain digits, and their lengths are always equal.
The solution in Java#
class Solution {
public String getHint(String secret, String guess) {
// keep counts
int bulls=0;
int cows =0;
// keep primitive arrays
int[] secretArr1 = new int[10];
int[] guessArr2 = new int[10];

// loop through the secret
for(int i=0; i<secret.length(); i++){
// get the current characters
char c1 = secret.charAt(i);
char c2 = guess.charAt(i);

// if they match, then increment bulls
if(c1==c2)
bulls++;
else{
// otherwise increment our arrays
secretArr1[c1-'0']++;
guessArr2[c2-'0']++;
}
}

// loop through our primitive arrays
for(int i=0; i<10; i++){
// increment our cows according to which primitive is smaller
cows += Math.min(secretArr1[i], guessArr2[i]);
}

return bulls+"A"+cows+"B";
}
}

``````
``` ```
``` ```
``` ```
``` ```
``` CNCF’s Notary and Notation projects get major update Supercharge brand content with the Typeface AI app for Microsoft Teams ```
``` The software-defined trend for embedded devicesThe landscape of IoT devices is transforming, marked by a fundamental evolution toward software-driven innovation. In this era, the paradigm of Software-Defined IoT devices is redefining traditional notions, where software supremacy over mechanical hardware unleashes a wave of dynamic, upgradable smart devices embedding distributed intelligence. Visionary OEMs are at the forefront of this transformation, harnessing How are climate changes affecting your location?  Find out with Weather from Microsoft Start.Extreme weather seems to be in the news a lot lately.  Weather events like stronger tropical cyclones, record rainfalls, extended droughts, heat waves, wildfires and smoke are all breaking records more frequently, impacting the lives of millions. In fact, the past 8 years are the warmest ever recorded – as far back as 1850 – Tackling long-haul diseases | MIT Technology ReviewTal, who has been obsessed with infectious disease since losing an uncle to HIV/AIDS and a cousin to meningococcal meningitis, wondered what this striking diversity could reveal about our immune response to infection. According to one hypothesis, the wide array of these receptors is the result of an evolutionary arms race between disease-causing microbes and SD Times Open-Source Project of the Week: QuivrQuivr utilizes the power of generative AI to function as a personal assistant. The developers behind the project compared it to the note-taking app Obsidian, but turbocharged with AI capabilities. Quivr is designed to prioritize speed and efficiency, ensuring users can quickly and easily access their data. It is built to be secure, giving users The Download: Alabama’s embryo ruling impact, and remote learning for pre-schoolersThis is today’s edition of The Download, our weekday newsletter that provides a daily dose of what’s going on in the world of technology. The weird way Alabama’s embryo ruling takes on artificial wombs A ruling by the Alabama Supreme Court last week that frozen embryos count as children is sending “shock waves” through the fertility industry ```
``` ```
``` ```
``` Copyright© 2023 - Cobw3b.com All Rights Reserved ```
``` ```