算法第二十七天-猜数字游戏

news2025/1/16 20:54:18

猜数字游戏

题目要求

在这里插入图片描述

在这里插入图片描述

解体思路

有多少位属于数字和确切位置都猜对了:统计 s e c r e t [ i ] = g u e s s [ i ] secret[i]=guess[i] secret[i]=guess[i]的个数。
有多少位属于数字猜对了但是位置不对:用两个数组(哈希表)分别统计 s e c r e t [ i ] ≠ g u e s s [ i ] secret[i]\ne guess[i] secret[i]=guess[i] s e c r e t [ i ] secret[i] secret[i]的出现次数和 g u e s s [ i ] guess[i] guess[i]的出现次数,记作 c n t S cntS cntS c n t G cntG cntG。答案为
∑ m i n ⁡ ( c n t S [ i ] , c n t G [ i ] ) ∑min⁡(cntS[i],cntG[i]) min(cntS[i],cntG[i])

例如
s e c r e t = 12223 g u e s s = 13332 secret=12223\\ guess=13332 secret=12223guess=13332
对于 secret [ i ] ≠ guess [ i ] \textit{secret}[i] \ne \textit{guess}[i] secret[i]=guess[i]的情况,‘2’ 有1个猜对但是位置不对,‘3’我们猜了3个但是 s e c r e t secret secret只有1个,所以‘3’也猜对了1个但是位置不对。所以一共有2位属于数字猜对了但是位置不对。

class Solution:
    def getHint(self, secret: str, guess: str) -> str:
        a = 0
        cnt_s = Counter()
        cnt_g = Counter()
        for x,y in zip(secret,guess):
            if x == y:
                a +=1
            else:
                cnt_s[x] +=1
                cnt_g[y] +=1
        b = (cnt_s & cnt_g).total()
        return f"{a}A{b}B"

复杂度分析

时间复杂度: O ( n O(n O(n,其中n为 s e c r e t secret secret的长度。
空间复杂度: O ( ∣ Σ ∣ ) \mathcal{O}(|\Sigma|) O(∣Σ∣)。其中 ∣ Σ ∣ |\Sigma| ∣Σ∣为字符集合的大小,本题字符均为数字,所以 ∣ Σ ∣ = 10 |\Sigma|=10 ∣Σ∣=10

参考

灵茶山艾府

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1519074.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C#实现哈希查找算法​

C#实现哈希查找算法 下面是一个简单的C#代码示例,实现了哈希查找算法: using System; using System.Collections.Generic;class HashSearch {// 哈希查找函数static int HashSearchFunction(int[] array, int target){// 创建一个Dictionary用于存储数…

this是什么?为什么要改变this?怎么改变 this 指向?

目录 this 是什么? 箭头函数中的 this 为什么要改变 this 指向? 改变 this 指向的三种方法 call(无数个参数) apply(两个参数) bind(无数个参数) this 是什么? 在对象方法中,this 指的是所有者对象(方法的拥有者…

程序人生——Java数组和集合使用建议(1)

目录 引出数组和集合建议60:性能考虑,数组是首选建议61:若有必要,使用变长数组建议62:警惕数组的浅拷贝 建议63:在明确的场景下,为集合指定初始容量建议64:多种最值算法,…

YOLOv8 | 添加注意力机制报错KeyError:已解决,详细步骤

目录 添加注意力机制报错 报错的原因 注意事项 解决错误流程 代码分享 ⭐欢迎大家订阅我的专栏一起学习⭐ 🚀🚀🚀订阅专栏,更新及时查看不迷路🚀🚀🚀 YOLOv5涨点专栏:h…

Linux中GPU相关命令

Linux查看显卡信息: lspci | grep -i vga 使用nvidia GPU可以: lspci | grep -i nvidia1 前边的序号 "00:0f.0"是显卡的代号(这里是用的虚拟机); 查看指定显卡的详细信息用以下指令: lspci -v -s 00:0f.01 Linux查看Nvidia显…

探索仿函数(Functor):C++中的灵活函数对象

文章目录 一、仿函数定义及使用二、仿函数与函数指针的区别三、仿函数与算法的关系四、仿函数的实践用例 在C编程中,我们经常需要对数据进行排序、筛选或者其他操作。为了实现这些功能,C标准库提供了许多通用的算法和容器,而其中一个重要的概…

Linux--基本知识入门

一.几个基本知识 终端: CtrlAltT 或者桌面/文件夹右键,打开终端切换为管理员: sudo su 退出:exit查看内核版本号: uname -a内核版本号含义: 5 代表主版本号;13代表次版本号;0代表修订版本号;30代表修订版本的第几次微调;数字越大表示内核越新. 二.目录…

git bash 命令行反应慢、卡顿(定位出根本原因)

参考该博主: https://blog.csdn.net/weixin_50212044/article/details/131575987?utm_mediumdistribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-0-131575987-blog-130024908.235v43pc_blog_bottom_relevance_base4&spm1001.210…

26.网络游戏逆向分析与漏洞攻防-网络通信数据包分析工具-实现生成日志文件的功能

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 如果看不懂、不知道现在做的什么,那就跟着做完看效果 内容参考于:易道云信息技术研究院VIP课 上一个内容:25.利用全新的通…

【北京大学】徐高《金融经济学二十五讲》

一、经济的任务 经济的任务之一是确保有效地分配稀缺资源,这是经济学中的一个核心问题。资源是有限的,而需求是无限的,因此经济系统需要通过合理的机制来分配资源以满足社会的需求。以下是关于经济分配资源的几个方面: 1. 资源配…

Matlab进阶绘图第45期—蝴蝶气泡图

蝴蝶气泡图是一种特殊的柱泡图/气泡柱状图。 蝴蝶图一般由左右两个水平柱状图组合而成,其形如蝴蝶展翅,可以很直观地展示两种数据直接的差异。 而蝴蝶气泡图则是在两个水平柱状图每根柱子外侧额外添加大小不同的气泡,用于表示另外一个数据变…

web学习笔记(三十三)

目录 1.严格模式 1.1严格模式的概念: 1.2严格模式在语义上更改的地方: 1.3如何开启严格模式 1.4严格模式应用上的变化 2.原型链 1.严格模式 1.1严格模式的概念: 严格模式有点像es5向es6过渡而产生的一种模式,因为es6的语法…

密码保护小贴士:如何应对常见的网络钓鱼攻击?

网络钓鱼攻击是一种常见的网络欺诈手段,针对个人隐私和财产安全构成威胁。以下是一些密码保护的小贴士,帮助您应对常见的网络钓鱼攻击: 1.谨慎点击链接:收到来历不明的邮件、短信或社交媒体消息时,不要轻易点击其中的…

案例分析篇09:Web架构设计相关20个考点(7~11)(2024年软考高级系统架构设计师冲刺知识点总结)

专栏系列文章推荐: 2024高级系统架构设计师备考资料(高频考点&真题&经验)https://blog.csdn.net/seeker1994/category_12593400.html 【历年案例分析真题考点汇总】与【专栏文章案例分析高频考点目录】(2024年软考高级系统架构设计师冲刺知识点总结-案例分析篇-…

深度学习 精选笔记(11)深度学习计算相关:GPU、参数、读写、块

学习参考: 动手学深度学习2.0Deep-Learning-with-TensorFlow-bookpytorchlightning ①如有冒犯、请联系侵删。 ②已写完的笔记文章会不定时一直修订修改(删、改、增),以达到集多方教程的精华于一文的目的。 ③非常推荐上面(学习参考&#x…

PS学习 - 抠图-通道

抠出蝴蝶 1.通道抠图 套索工具 这里需要圈住你要的,注意尽量小点 ctrl j 复制 然后去掉背景 点击通道 找到明暗对比最大的通道,这里我理解为颜色反差最大的那个,突出你要抠的东西 搜了下说是一般为蓝色 复制通道 ctrll调出色阶 通过移…

前端:pre实现JSON格式化和搜索词高亮

产品功能 最终结果如下图所示&#xff0c;将获取到的json数据格式化&#xff0c;并且在搜索时&#xff0c;将搜索的关键词高亮。 实现 HTML <!-- 搜索框 --> <el-input class"input" v-model"searchjsonValue" change"searchJSON" p…

【Linux】Centos7安装Nginx1.21.6

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件( IMAP/POP3)代理服务器。其特点是占有内存少&#xff0c;并发能力强&#xff0c;事实上nginx的并发能力在同类型的网页服务器中表现较好&#xff0c;中国大陆使nginx的网站有:百度、京东、新浪、网易、腾讯、淘宝等。 …

Android Gradle 编译过程中的优化

} 但是反射没有办法能很好的识别&#xff0c;所以如果代码中有使用反射需要自行处理&#xff0c;以免被删除。 shrink resource 功能 shrink code流程执行完后删除了无用的代码后&#xff0c;就能确认哪些资源文件没有使用&#xff0c;shrink resource流程就是确定哪些资源…

人工智能(AI)+、+了什么?互联网+又是什么?

引言 人工智能&#xff08;Artificial Intelligence&#xff0c;简称AI&#xff09;&#xff0c;作为一门迅猛发展的领域&#xff0c;自20世纪中叶以来一直在不断演进。它涉及计算机科学、机器学习和模式识别等多个学科&#xff0c;旨在开发可以模拟和执行人类智力任务的系统。…