LeetCode 299 猜數字遊戲 Java實現
LeetCode299
題目
你在和朋友一起玩 猜數字(Bulls and Cows)遊戲,該遊戲規則如下:
你寫出一個祕密數字,並請朋友猜這個數字是多少。
朋友每猜測一次,你就會給他一個提示,告訴他的猜測數字中有多少位屬於數字和確切位置都猜對了(稱為“Bulls”, 公牛),有多少位屬於數字猜對了但是位置不對(稱為“Cows”, 奶牛)。
朋友根據提示繼續猜,直到猜出祕密數字。
請寫出一個根據祕密數字和朋友的猜測數返回提示的函式,返回字串的格式為 xAyB ,x 和 y 都是數字,A 表示公牛,用 B 表示奶牛。
xA 表示有 x 位數字出現在祕密數字中,且位置都與祕密數字一致。
yB 表示有 y 位數字出現在祕密數字中,但位置與祕密數字不一致。
請注意祕密數字和朋友的猜測數都可能含有重複數字,每位數字只能統計一次。
示例 1:
輸入: secret = “1807”, guess = “7810”
輸出: “1A3B”
解釋: 1 公牛和 3 奶牛。公牛是 8,奶牛是 0, 1 和 7。
示例 2:
輸入: secret = “1123”, guess = “0111”
輸出: “1A1B”
解釋: 朋友猜測數中的第一個 1 是公牛,第二個或第三個 1 可被視為奶牛。
說明: 你可以假設祕密數字和朋友的猜測數都只包含數字,並且它們的長度永遠相等。
程式碼
class Solution {
public String getHint(String secret, String guess) {
int A = 0;
int B = 0;
Map<Character, Integer> map = new HashMap<>();
for (int i = 0; i < secret.length(); i++) {
map.put(secret.charAt(i), map.getOrDefault(secret.charAt(i), 0) + 1);
//統計某個數出現了多少次
}
for (int i = 0; i < guess.length(); i++) {
//如果位置對應 則A的數量加一 並且使這個數的使用次數減一
if (secret.charAt(i) == guess.charAt(i)) {
A++;
map.replace(guess.charAt(i), map.get(guess.charAt(i)) - 1);
}
}
for (int i = 0; i < guess.length(); i++) {
//如果位置不對應 且存在這個數 則這個數的使用次數減一
if (secret.charAt(i) != guess.charAt(i) && map.containsKey(guess.charAt(i))) {
if (map.get(guess.charAt(i)) != 0) {
B++;
map.replace(guess.charAt(i), map.get(guess.charAt(i)) - 1);
}
}
}
return new String(A + "A" + B + "B");
}
}
相關文章
- 【Java】——猜數字遊戲Java遊戲
- linux實現猜數字小遊戲Linux遊戲
- 【Java基礎教程】用Java實現猜數字小遊戲Java遊戲
- 猜數字遊戲遊戲
- Shell猜數字遊戲遊戲
- 猜數字小遊戲遊戲
- 使用者猜數字遊戲遊戲
- LeetCode-374-猜數字大小LeetCode
- C#之簡易猜數字遊戲C#遊戲
- 7-24 猜數字遊戲 (15分)遊戲
- pyqt5例項——pycharm實現猜數遊戲QTPyCharm遊戲
- wordle game 猜字遊戲GAM遊戲
- Java學習筆記(一) 猜數遊戲Java筆記遊戲
- Rust學習之旅1——寫個猜數字遊戲Rust遊戲
- 【python小練習】簡單的猜數字遊戲Python遊戲
- LeetCode每日一題: 猜數字大小(No.374)LeetCode每日一題
- python實現簡單猜單詞遊戲Python遊戲
- 透過編寫“猜數字”遊戲來學習 Awk遊戲
- 猜數字
- Leetcode 299 Bulls and CowsLeetCode
- C語言實現的一個簡單的猜數小遊戲C語言遊戲
- 猜數字11.9
- LeetCode題解(1178):猜字謎(Python)LeetCodePython
- 以猜數字遊戲引出的分治演算法的理解與思考遊戲演算法
- IOS技術分享| 你畫我猜小遊戲快速實現iOS遊戲
- 數字遊戲遊戲
- leedcode-猜數字大小
- 演算法 猜數字演算法
- [TJOI2009] 猜數字
- 猜數字的介面版
- [數字華容道] Html+css+js 實現小遊戲HTMLCSSJS遊戲
- C語言初學者(自學)做的一個猜數字小遊戲C語言遊戲
- PAT1044火星數字(java實現)Java
- PAT1048數字加密(java實現)加密Java
- PAT1019 數字黑洞(java實現)Java
- Rust——猜謎遊戲【二】Rust遊戲
- 雜湊競猜遊戲遊戲
- 一個自己都感覺幼稚的猜數遊戲遊戲