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 题目汇总

  • 相关阅读:
    代理模式
    栈和队列----按照左右半区的方式重新组合单链表
    栈和队列----合并两个有序的单链表
    Java中的线程池
    SpringMVC中的参数绑定
    Mybatis常见面试题汇总
    ADC裸机程序
    用uart实现printf函数
    uarts裸机程序
    定时器裸机程序
  • 原文地址:https://www.cnblogs.com/grandyang/p/5420262.html
Copyright © 2011-2022 走看看