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

  • 相关阅读:
    vue路由
    vue-cli目录结构介绍
    andriodiphone视频禁止全屏播放
    JS判断Android、iOS或浏览器的多种方法(四种方法)
    vue中移动端自适应方案
    移动端视频不兼容
    vue之router-link
    移动端网页开发注意点
    AWS EC2服务器的HTTPS负载均衡器配置过程
    Kubernetes概念介绍和v1版本部署过程
  • 原文地址:https://www.cnblogs.com/grandyang/p/5420262.html
Copyright © 2011-2022 走看看