leetcode解題之猜數字遊戲

2021-10-03 15:01:10 字數 1135 閱讀 5634

你正在和你的朋友玩 猜數字(bulls and

cows)遊戲:你寫下乙個數字讓你的朋友猜。每次他猜測後,你給他乙個提示,告訴他有多少位數字和確切位置都猜對了(稱為「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...