zoukankan      html  css  js  c++  java
  • [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";
    }

    CareerCup All in One 题目汇总

  • 相关阅读:
    nginx日志格式
    nginx默认虚拟主机
    php各种编译错误汇总
    php.ini中最好禁止的一些函数
    php常用的操作
    快速扫描某个服务器上所有开放端口
    LOJ6303:水题——题解
    BZOJ5323 & 洛谷4562:[JXOI2018]游戏——题解
    BZOJ5333:[SDOI2018]荣誉称号——题解
    LOJ2587:[APIO2018]铁人两项——题解
  • 原文地址:https://www.cnblogs.com/grandyang/p/5420262.html
Copyright © 2011-2022 走看看