你正在和你的朋友玩 猜數字(bulls andcows)遊戲:你寫下乙個數字讓你的朋友猜。每次他猜測後,你給他乙個提示,告訴他有多少位數字和確切位置都猜對了(稱為「bulls」,
公牛),有多少位數字猜對了但是位置不對(稱為「cows」, 奶牛)。你的朋友將會根據提示繼續猜,直到猜出秘密數字。
請寫出乙個根據秘密數字和朋友的猜測數返回提示的函式,用 a 表示公牛,用 b 表示奶牛。
請注意秘密數字和朋友的猜測數都可能含有重複數字。
示例 1
:輸入: secret =
"1807"
, guess =
"7810"
輸出:"1a3b"
解釋:1 公牛和 3 奶牛。公牛是 8,奶牛是 0
,1 和 7。
示例 2
:輸入: secret =
"1123"
, guess =
"0111"
輸出:"1a1b"
解釋: 朋友猜測數中的第乙個 1 是公牛,第二個或第三個 1 可被視為奶牛。
說明: 你可以假設秘密數字和朋友的猜測數都只包含數字,並且它們的長度永遠相等。
開始的思路是先找到位置相同並相等(公牛)的個數,然後再找母牛的個數
class
solution
}for
(int i=
0;i)else}if
(oldnum==cowsnum)
else
}return bullsnum+
"a"+cowsnum+
"b";
}}
但是提交的時候執行超時了,所以還是參考一下官方的題解吧,因為數字只有0~9所以可以設定兩個陣列儲存出現的數字的次數,然後取相同位置的最小值就可以了
class
solution
else
}for
(int i=
0;i<
10;i++
)return bullsnum+
"a"+cowsnum+
"b";
}}
雜湊解題 leetcode299猜數字遊戲
這一題如果用hash做非常容易,時間複雜度為o n 你正在和你的朋友玩 猜數字 bulls and cows 遊戲 你寫下乙個數字讓你的朋友猜。每次他猜測後,你給他乙個提示,告訴他有多少位數字和確切位置都猜對了 稱為 bulls 公牛 有多少位數字猜對了但是位置不對 稱為 cows 奶牛 你的朋友將...
leetcode猜數字大小
第一種方法 二分查詢 class solution object def guessnumber self,n type n int rtype int left 1 right n while left right mid left right 1 if guess mid 1 right mid...
猜數字之tkinter
import random import tkinter import tkinter.messagebox defb clicked if name entry.get tkinter.messagebox.showerror title error message 請輸入使用者名字 else c...