你正在和你的朋友玩 猜數字(bulls and cows)遊戲:你寫下乙個數字讓你的朋友猜。每次他猜測後,你給他乙個提示,告訴他有多少位數字和確切位置都猜對了(稱為「bulls」, 公牛),有多少位數字猜對了但是位置不對(稱為「cows」, 奶牛)。你的朋友將會根據提示繼續猜,直到猜出秘密數字。
請寫出乙個根據秘密數字和朋友的猜測數返回提示的函式,用 a 表示公牛,用 b 表示奶牛。
請注意秘密數字和朋友的猜測數都可能含有重複數字。
解釋: 朋友猜測數中的第乙個 1 是公牛,第二個或第三個 1 可被視為奶牛。
說明: 你可以假設秘密數字和朋友的猜測數都只包含數字,並且它們的長度永遠相等。
思路:把需要猜測的secret 存在陣列中,陣列索引表示0-9,陣列的值表示該索引出現的次數。
如果secret中沒有,則不用處理。
如果secret中有,且沒有被guess中相同的字元減完,則cows++,且rec[val]--.
bulls++,且rec[val]--
如果rec[val]已經為0,說明之前的母牛已經抵了相似的數值,則對cows--
class solution ; // 儲存secret中 0-9數字,出現的次數
for(int i = 0; i < secret.size(); ++i)
for(int i = 0; i < secret.size(); ++i)
else if(rec[guess[i]-'0'] > 0) // 猜到這個數字,但是位置不對,母牛++,次數--。
}return to_string(bulls)+"a"+to_string(cows)+"b";}};
leetcode299 猜數字遊戲
你正在和你的朋友玩 猜數字 bulls and cows 遊戲 你寫下乙個數字讓你的朋友猜。每次他猜測後,你給他乙個提示,告訴他有多少位數字和確切位置都猜對了 稱為 bulls 公牛 有多少位數字猜對了但是位置不對 稱為 cows 奶牛 你的朋友將會根據提示繼續猜,直到猜出秘密數字。請寫出乙個根據秘...
LeetCode299 猜數字遊戲
題目 你正在和你的朋友玩 猜數字 bulls and cows 遊戲 你寫下乙個數字讓你的朋友猜。每次他猜測後,你給他乙個提示,告訴他有多少位數字和確切位置都猜對了 稱為 bulls 公牛 有多少位數字猜對了但是位置不對 稱為 cows 奶牛 你的朋友將會根據提示繼續猜,直到猜出秘密數字。請寫出乙個...
LeetCode 299 猜數字遊戲
1.自己的做法 class solution public string gethint string secret,string guess int a 0,b 0 char sc secret.tochararray char gs guess.tochararray for int i 0 i...