Leetcode 面试题 16.15. 珠玑妙算
Published on 2022-07-02 11:40 in 暂未分类 with 萧海~

Leetcode 面试题 16.15. 珠玑妙算

    在这里插入图片描述
    珠玑妙算游戏(the game of master mind)的玩法如下。

    计算机有4个槽,每个槽放一个球,颜色可能是红色(R)、黄色(Y)、绿色(G)或蓝色(B)。例如,计算机可能有RGGB 4种(槽1为红色,槽2、3为绿色,槽4为蓝色)。作为用户,你试图猜出颜色组合。打个比方,你可能会猜YRGB。要是猜对某个槽的颜色,则算一次“猜中”;要是只猜对颜色但槽位猜错了,则算一次“伪猜中”。注意,“猜中”不能算入“伪猜中”。

    给定一种颜色组合solution和一个猜测guess,编写一个方法,返回猜中和伪猜中的次数answer,其中answer[0]为猜中的次数,answer[1]为伪猜中的次数。

    示例:

    输入: solution="RGBY",guess="GGRR"
    输出: [1,1]
    解释: 猜中1次,伪猜中1次。

    提示:

    • len(solution) = len(guess) = 4
    • solution和guess仅包含"R","G","B","Y"这4种字符

    Code:

    class Solution {
    public:
    vector<int> masterMind(string solution, string guess) {
    int right=0;
    int error=0;
    for(int i=0;i<solution.size();i++)
    {
    if(solution[i]==guess[i])
    {
    right++;
    solution.erase(i,1);
    guess.erase(i,1);
    i--;
    }
    }
    error+=min(count(solution.begin(),solution.end(),'R'),count(guess.begin(),guess.end(),'R'));
    error+=min(count(solution.begin(),solution.end(),'G'),count(guess.begin(),guess.end(),'G'));
    error+=min(count(solution.begin(),solution.end(),'Y'),count(guess.begin(),guess.end(),'Y'));
    error+=min(count(solution.begin(),solution.end(),'B'),count(guess.begin(),guess.end(),'B'));
    vector<int>res;
    res.push_back(right);
    res.push_back(error);
    return res;
    }
    };
    posted @   萧海~  阅读(42)  评论(0编辑  收藏  举报
    相关博文:
    阅读排行:
    · winform 绘制太阳,地球,月球 运作规律
    · AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
    · 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
    · 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
    · 上周热点回顾(3.3-3.9)
    点击右上角即可分享
    微信分享提示
    电磁波切换