珠璣妙算

題目描述

我們現在有四個槽,每個槽放一個球,顏色可能是紅色(R)、黃色(Y)、綠色(G)或藍色(B)。例如,可能的情況爲RGGB(槽1爲紅色,槽2、3爲綠色,槽4爲藍色),作爲玩家,你需要試圖猜出顏色的組合。比如,你可能猜YRGB。要是你猜對了某個槽的顏色,則算一次“猜中”。要是隻是猜對了顏色但槽位猜錯了,則算一次“僞猜中”。注意,“猜中”不能算入“僞猜中”。

給定兩個string A和guess。分別表示顏色組合,和一個猜測。請返回一個int數組,第一個元素爲猜中的次數,第二個元素爲僞猜中的次數。

測試樣例:

"RGBY","GGRR"

返回:[1,1]

 

 

有可能在後面有,所以要遍歷兩次

 

class Result {
public:
    vector<int> calcResult(string A, string guess) {
        // write code here
        //R, Y, B, G
        map<char, int> hash;
        vector<int> res(2, 0);
        for(int i = 0; i < 4; ++i)
        {
            if(A[i] == guess[i])
                res[0]++;
            else
            {
                hash[guess[i]]++;
            }
        }
        for(int i = 0; i < 4; ++i)
        {
            if(A[i] != guess[i] && hash[A[i]] > 0)
            {
                res[1]++;
                hash[A[i]]--;
            }
        }
        return res;
    }
};

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章