[CareerCup] 17.5 Game of Master Mind 猜字游戏

简介:

17.5 The Came of Master Mind is played as follows: The computer has four slots, and each slot will contain a ball that is red (R), yellow (Y), green (C) or blue (B). For example, the computer might have RGGB (Slot # 1 is red, Slots #2 and #3 are green, Slot #4 is blue). You, the user, are trying to guess the solution. You might, for example, guess YRGB. When you guess the correct color for the correct slot, you get a "hit." If you guess a color that exists but is in the wrong slot, you get a "pseudo-hit." Note that a slot that is a hit can never count as a pseudo-hit. For example, if the actual solution is RGBYandyou guess GGRR, you have one hit and one pseudo-hit. Write a method that, given a guess and a solution, returns the number of hits and pseudo-hits.

LeetCode上的原题,讲解请参见我之前的博客Bulls and Cows

解法一:

string getHint(string answer, string guess) {
    int m[256] = {0}, h = 0, p = 0;
    for (int i = 0; i < answer.size(); ++i) {
        if (answer[i] == guess[i]) ++h;
        else ++m[answer[i]];
    }
    for (int i = 0; i < answer.size(); ++i) {
        if (answer[i] != guess[i] && m[guess[i]]) {
            ++p;
            --m[guess[i]];
        }
    }
    return to_string(h) + "H" + to_string(p) + "P";
}

解法二:

string getHint(string answer, string guess) {
    int m[256] = {0}, h = 0, p = 0;
    for (int i = 0; i < answer.size(); ++i) {
        if (answer[i] == guess[i]) ++h;
        else {
            if (m[answer[i]]++ < 0) ++p;
            if (m[guess[i]]-- > 0) ++p;
        }
    }
    return to_string(h) + "H" + to_string(p) + "P";
}

本文转自博客园Grandyang的博客,原文链接:猜字游戏[CareerCup] 17.5 Game of Master Mind ,如需转载请自行联系原博主。

相关文章
|
存储 算法
LeetCode 289. Game of Life
如果活细胞周围八个位置的活细胞数少于两个,则该位置活细胞死亡; 如果活细胞周围八个位置有两个或三个活细胞,则该位置活细胞仍然存活; 如果活细胞周围八个位置有超过三个活细胞,则该位置活细胞死亡; 如果死细胞周围正好有三个活细胞,则该位置死细胞复活;
76 0
LeetCode 289. Game of Life
|
算法 索引
LeetCode 55. Jump Game
给定一个非负整数数组,您最初定位在数组的第一个索引处。 数组中的每个元素表示该位置的最大跳转长度。 确定您是否能够到达最后一个索引。
90 0
LeetCode 55. Jump Game
HDU-1846,Brave Game(巴什博弈)
HDU-1846,Brave Game(巴什博弈)
|
人工智能 算法 大数据