前往
大廳
主題

LeetCode - 299. Bulls and Cows 解題心得

Not In My Back Yard | 2020-11-24 00:00:01 | 巴幣 0 | 人氣 205

題目連結:


題目意譯:
你正在和朋友一起玩「Bulls and Cows」這個遊戲。

你寫下了一個密碼 secret,然後讓你的朋友猜出這個數字是多少。當你的朋友每猜出一個數字 guess 之後,你會提供以下的提示資訊:

「bulls」的數量代表朋友的猜測中,值與位置皆正確的數字。
「cows」的數量是猜的數字有在密碼中,但位置是錯的。更具體來說,guess 中的非 bulls 數字可以重新排列變為 bulls。

給定 secret 和 guess 之值,回傳以上提示。

提示的格式應為「xAyB」,其中 x 是 bulls 的數量, y 是 cows 的數量。請注意,secret 和 guess 都可能會有重複的數字。

限制:
1 ≦ secret.length、guess.length ≦ 1000
secret.length == guess.length
secret 和 guess 只包含阿拉伯數字。


範例測資:
範例 1:
輸入: secret = "1807" , guess = "7810"
輸出: "1A3B"
解釋: Bulls 以「|」連接,而 Cows 以底線畫出:
"1807"
  |
"7810"

範例 2:
輸入: secret = "1123" , guess = "0111"
輸出: "1A1B"
解釋: Bulls 以「|」連接,而 Cows 以底線畫出:
"1123"        "1123"
  |      或     |
"0111"        "0111"
注意,guess 尾端兩個 1 只能算作一個 cow,因為非 bull 位數重新排列最多只能讓其中一個「1」變為一個 bull。

範例 3:
輸入: secret = "1" , guess = "0"
輸出: "0A0B"

範例 4:
輸入: secret = "1" , guess = "1"
輸出: "1A0B"


解題思維:
典型的幾A幾B之遊戲,可以參見這題的做法。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

相關創作

更多創作