題目:

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

你寫出一個秘密數字,并請朋友猜這個數字是多少。

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

朋友根據提示繼續猜,直到猜出秘密數字。

請寫出一個根據秘密數字和朋友的猜測數返回提示的函數,返回字符串的格式為 xAyB ,x 和 y 都是數字,A 表示公牛,用 B 表示奶牛。

xA 表示有 x 位數字出現在秘密數字中,且位置都與秘密數字一致。

yB 表示有 y 位數字出現在秘密數字中,但位置與秘密數字不一致。

請注意秘密數字和朋友的猜測數都可能含有重復數字,每位數字只能統計一次。

示例:

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

輸出: "1A1B"

解釋: 朋友猜測數中的第一個 1 是公牛,第二個或第三個 1 可被視為奶牛。

思路:

遍歷字符串過程中,記錄A的個數,同時記錄其他元素的出現次數。

對每個其他元素, 和中出現的最小次數,就是該元素對應的B的個數。

代碼:

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