題目:

你在和朋友一起玩 猜數(shù)字( and Cows)游戲,該游戲規(guī)則如下:

你寫(xiě)出一個(gè)秘密數(shù)字,并請(qǐng)朋友猜這個(gè)數(shù)字是多少。

朋友每猜測(cè)一次,你就會(huì)給他一個(gè)提示,告訴他的猜測(cè)數(shù)字中有多少位屬于數(shù)字和確切位置都猜對(duì)了(稱(chēng)為“”, 公牛),有多少位屬于數(shù)字猜對(duì)了但是位置不對(duì)(稱(chēng)為“Cows”, 奶牛)。

朋友根據(jù)提示繼續(xù)猜,直到猜出秘密數(shù)字。

請(qǐng)寫(xiě)出一個(gè)根據(jù)秘密數(shù)字和朋友的猜測(cè)數(shù)返回提示的函數(shù),返回字符串的格式為 xAyB ,x 和 y 都是數(shù)字,A 表示公牛,用 B 表示奶牛。

xA 表示有 x 位數(shù)字出現(xiàn)在秘密數(shù)字中,且位置都與秘密數(shù)字一致。

yB 表示有 y 位數(shù)字出現(xiàn)在秘密數(shù)字中,但位置與秘密數(shù)字不一致。

請(qǐng)注意秘密數(shù)字和朋友的猜測(cè)數(shù)都可能含有重復(fù)數(shù)字,每位數(shù)字只能統(tǒng)計(jì)一次。

示例:

輸入: = "1123", = "0111"

輸出: "1A1B"

解釋: 朋友猜測(cè)數(shù)中的第一個(gè) 1 是公牛,第二個(gè)或第三個(gè) 1 可被視為奶牛。

思路:

遍歷字符串過(guò)程中,記錄A的個(gè)數(shù),同時(shí)記錄其他元素的出現(xiàn)次數(shù)。

對(duì)每個(gè)其他元素, 和中出現(xiàn)的最小次數(shù),就是該元素對(duì)應(yīng)的B的個(gè)數(shù)。

代碼:

{: ( , ) { int n = .size(); int x=0; , ; for(int i=0; ); } } ss; ss