• 299 Bulls and Cows 猜数字游戏


    你正在和你的朋友玩猜数字(Bulls and Cows)游戏:你写下一个数字让你的朋友猜。每次他猜测后,你给他一个提示,告诉他有多少位数字和确切位置都猜对了(称为”Bulls“, 公牛),有多少位数字猜对了但是位置不对(称为“Cows“, 奶牛)。你的朋友将会根据提示继续猜,直到猜出秘密数字。
    举个例子:
    秘密数字:  "1807"
    朋友猜的数字: "7810"
    提示:1 公牛和 3 奶牛。(那个公牛是8,奶牛是0, 1 和7。)
    请写出一个根据秘密数字和朋友的猜测返回提示的函数,用 A 表示公牛,用 B 表示奶牛。 在上述例子中,你的函数应该返回"1A3B"。
    请注意秘密数字和朋友的猜测都有可能含有重复的数字,例如:
    秘密数字:  "1123"
    朋友猜的数字: "0111"
    在这个例子中,朋友猜测中第一个1 是公牛,第二个和第三个1 是奶牛,你的函数应该返回"1A1B"。
    你可以假设秘密数字和朋友猜的猜测都只包含数字,而且他们的长度永远相同。

    详见:https://leetcode.com/problems/bulls-and-cows/description/

    class Solution {
    public:
        string getHint(string secret, string guess) {
            int m[256]={0},bulls=0,cows=0;
            for(int i=0;i<secret.size();++i)
            {
                if(secret[i]==guess[i])
                {
                    ++bulls;
                }
                else
                {
                    ++m[secret[i]];
                }
            }
            for(int i=0;i<secret.size();++i)
            {
                if(secret[i]!=guess[i]&&m[guess[i]])
                {
                    ++cows;
                    --m[guess[i]];
                }
            }
            return to_string(bulls)+"A"+to_string(cows)+"B";
        }
    };
    

     参考:https://www.cnblogs.com/grandyang/p/4929139.html

  • 相关阅读:
    3.2.1 正則表達式的语法(1)
    朴素贝叶斯(naive bayes)
    有方向的运动js
    碰撞检測之OBB-OBB的SweepTest
    左右上下都能滚动的效果
    C语言中 fputs() fgets() 的使用方法
    Apache Module mod_ssl
    "ssllabs" website and "testssl" website
    Google发布SSLv3漏洞简要分析报告
    为什么要使用TLSv1.2和System SSL?
  • 原文地址:https://www.cnblogs.com/xidian2014/p/8776870.html
Copyright © 2020-2023  润新知