首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

公牛和母牛-将简单的代码转化为函数

公牛和母牛是一个猜数字游戏,其中一个玩家(称为“公牛”)选择一个四位数作为答案,另一个玩家(称为“母牛”)尝试猜出这个数字。每次猜测后,公牛会给出两个数字:一个表示数字正确且位置正确的个数(称为“公牛数”),另一个表示数字正确但位置不正确的个数(称为“母牛数”)。

将这个游戏转化为函数可以使代码更加模块化和可重用。下面是一个示例的函数实现:

代码语言:txt
复制
def calculate_bulls_and_cows(answer, guess):
    bulls = 0
    cows = 0
    answer_digits = [int(digit) for digit in str(answer)]
    guess_digits = [int(digit) for digit in str(guess)]

    for i in range(len(answer_digits)):
        if answer_digits[i] == guess_digits[i]:
            bulls += 1
        elif guess_digits[i] in answer_digits:
            cows += 1

    return bulls, cows

这个函数接受两个参数:答案(answer)和猜测(guess),并返回公牛数(bulls)和母牛数(cows)。

在函数内部,我们首先将答案和猜测转化为数字列表,以便进行比较。然后,我们使用一个循环遍历答案的每一位数字。如果数字既在答案中又在猜测中,并且位置相同,则增加公牛数。如果数字在答案中但位置不同,则增加母牛数。

这个函数可以用于任何需要判断公牛和母牛数的场景,例如猜数字游戏、密码破解等。

腾讯云相关产品和产品介绍链接地址:

  • 云函数(Serverless):https://cloud.tencent.com/product/scf
  • 云开发(CloudBase):https://cloud.tencent.com/product/tcb
  • 人工智能(AI):https://cloud.tencent.com/product/ai
  • 物联网(IoT):https://cloud.tencent.com/product/iotexplorer
  • 移动开发(移动推送):https://cloud.tencent.com/product/umeng
  • 存储(对象存储):https://cloud.tencent.com/product/cos
  • 区块链(腾讯区块链服务):https://cloud.tencent.com/product/tbaas
  • 元宇宙(腾讯元宇宙解决方案):https://cloud.tencent.com/solution/metaverse
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

漫画:猜数字说公牛母牛高频面试题

朋友将会根据提示继续猜,直到猜出秘密数字。 请写出一个根据秘密数字朋友猜测数返回提示函数,用 A 表示公牛,用 B 表示奶牛。 请注意秘密数字朋友猜测数都可能含有重复数字。...说明: 你可以假设秘密数字朋友猜测数都只包含数字,并且它们长度永远相等。 ? (瞪一瞪就全部掌握) 02 PART 题目分析 这道题,虽然被评定为“简单”,但是其实非常有趣。...如果不相同,我们secretguess当前索引位置处数字通过map记录下来,统计他们出现次数。当然,之前我们讲过。...最后,如果记录两个map中,数字出现重叠(可以通过最小值来判断),则意味着该数字在两边都出现过,就将母牛数加一(我就想说是母牛,不服来辩) 根据分析,完成代码(这次翻Go牌子): func getHint...母牛当然舒服了,挤挤奶就成。但是这些公牛,却是相当辛苦。正所谓,“吃水不忘挖井人”,如此含辛茹苦公牛,凭什么就不能被称为奶牛呢?

82010

漫画:猜数字说公牛母牛高频面试题

朋友将会根据提示继续猜,直到猜出秘密数字。 请写出一个根据秘密数字朋友猜测数返回提示函数,用 A 表示公牛,用 B 表示奶牛。 请注意秘密数字朋友猜测数都可能含有重复数字。...说明: 你可以假设秘密数字朋友猜测数都只包含数字,并且它们长度永远相等。 02 PART 题目分析 这道题,虽然被评定为“简单”,但是其实非常有趣。...如果不相同,我们secretguess当前索引位置处数字通过map记录下来,统计他们出现次数。当然,之前我们讲过。...最后,如果记录两个map中,数字出现重叠(可以通过最小值来判断),则意味着该数字在两边都出现过,就将母牛数加一(我就想说是母牛,不服来辩) 根据分析,完成代码(这次翻Go牌子): func getHint...本文所有代码均在leetcode上进行过测试运行。 算法思想才是最重要。 03 PART 奇怪知识 奶牛包不包括公牛?为了研究这个问题,我google了好一会儿。首先,国际定义,奶牛包括公牛

43420

漫画:猜数字说公牛母牛高频面试题

朋友将会根据提示继续猜,直到猜出秘密数字。 请写出一个根据秘密数字朋友猜测数返回提示函数,用 A 表示公牛,用 B 表示奶牛。 请注意秘密数字朋友猜测数都可能含有重复数字。...示例 1: 输入: secret = "1807", guess = "7810" 输出: "1A3B" 解释: 1 公牛 3 奶牛。公牛是 8,奶牛是 0, 1 7。...说明: 你可以假设秘密数字朋友猜测数都只包含数字,并且它们长度永远相等。 02 PART 题目分析 这道题,虽然被评定为“简单”,但是其实非常有趣。...如果不相同,我们secretguess当前索引位置处数字通过map记录下来,统计他们出现次数。当然,之前我们讲过。...最后,如果记录两个map中,数字出现重叠(可以通过最小值来判断),则意味着该数字在两边都出现过,就将母牛数加一(我就想说是母牛,不服来辩) 根据分析,完成代码(这次翻Go牌子): 1func getHint

87130

北美肉用公牛指数解读

断奶重 EPD(WW),以磅为单位,预测一头公牛与其他公牛相比较,断奶前发育能力传递给后代能力差异。...一岁重 EPD(YW),以磅为单位,预测一头公牛与其他公牛相比较,一岁前发育能力传递给后代能力差异。...一岁高 EPD(YH),以英寸为单位,预测一头公牛与其他公牛相比较,一岁时体高传递给后代能力差异。 睾丸周长 EPD(SC),以厘米为单位,预测一头公牛与其他公牛相比较,在阴囊尺寸传递力差异。...产奶能力 EPD(Milk),是通过公牛女儿其他公牛女儿相比较,预测一头公牛在奶产母性上遗传值。换句话说,是犊牛部分断奶体重专为奶产母性能力。...断奶犊牛价值($W),以美元/头表示价值指数,是预测后代在断奶前生产值平均差异。$W 包括在出生重、断奶直接增长、母牛奶产母牛个体上差异相关成本收益校正值。

92540

【每周一坑】疯狂母牛 +【解答】数据库

今天要讲这个,是一道算得上经典编程问题: 母牛问题 有一头母牛,它每年年初生一头小母牛。每头小母牛从第 4 个年头开始,每年年初也生一头小母牛。...(别问我公牛上哪去了……)请编程实现计算在第 n 年时候,共有多少头母牛? 输入:年份 n 输出:母牛数量 运行示例: ? 这道题,如果你网上搜一下,会有很多地方用各种语言写过。...一般来说是迭代(循环)递归两种解法。不过我当年看到这道题时候,就觉得这个很适合用面向对象思想来实现,因为母牛就是一种类型,每头母牛都是这个类型一个实例。这个思路你也可以考虑下。...详细解答参考代码将在下次栏目中给出,也可以其他同学在留言中代码。 期待各位同学提交解答,更期待你能完成整个系列。...这里我们以最简单 sqlite 为例(参考:《Python 实战(2):简单数据库》): 创建数据表及读取数据 import sqlite3# 建立数据库连接conn

66910

LeetCode 299 Bulls and Cows

题意 你正和你朋友一起玩下面的公牛母牛游戏:你写下一个数字然后让你朋友猜猜这个数字是多少....每当你朋友猜测时, 你提供一个提示, 表明所述猜测中有多少位数与你密码完全匹配,包括数字位置(称为”公牛”)以及有多少位数与密码匹配但位于错误位置(称为”奶牛”)。...编写一个函数, 根据秘密数字朋友猜测返回提示, 用于 A 表示公牛, B 表示奶牛....例 1: 输入: secret = "1807", guess = "7810" 输出: "1A3B" 说明: 1 个公牛 3 个奶牛. 公牛是 8, 奶牛是 0, 1 7....解法 刚开始我想法是依次获取公牛奶牛数量, 但奶牛判断需要 O(n^2) 时间复杂度, 后面想到, 用所有匹配数量 - 公牛数量就是奶牛数量, 只需要 O(n) 时间复杂度 O(1)

69440

神奇 SQL 之 联表细节 → MySQL JOIN 执行过程(二)

开心一刻   一头母牛在吃草,突然一头公牛从远处狂奔而来说:“快跑啊!!楼主来了!”   母牛说:“楼主来了关我屁事啊?”   公牛急忙说:“楼主吹牛逼呀!”   ...母牛大惊,拔腿就跑,边跑边问:“你是公牛你怕什么啊?”   公牛无奈道:“现在楼主不仅吹牛逼,还扯蛋!”   然后小牛也在跟着跑,公牛母牛问:“儿子你跑什么呢?”   ...简单点来说,MRR 是优化器随机 IO 转化为顺序 IO 以降低查询过程中 IO 开销一种手段 什么是读盘与落盘(IO) 当前绝大多少情况下,MySQL 数据是存在机械硬盘(SATA 盘...By default, mrr is on and mrr_cost_based is on mrr mrr_cost_based 默认值是 on ;我简单画个图,大家就明白这两个开关作用了...总结   1、mrr 带来性能上提升就是随机 IO 优化成 顺序 IO,从而提高查询效率   2、mrr 使用场景比较有限, range access 基于 req、eq_ref access

70610

Java匹马行天下之JavaWeb核心技术——Servlet

此故事纯属本人脑洞虚构 故事内容:草原上有一头公牛喜欢一头母牛,但是公牛不敢直接向母牛表白,有一天公牛找到一头小牛,想让小牛把他想对母牛说的话说给母牛听,小牛答应了,剧情很鸡血,就这样,看我用servlet...2、获取全局配置信息:  方法:public String getInitParamenter(String name) // 根据配置文件中key得到value 3、读取简单资源文件(即只包含key... 转发重定向都能让浏览器获得另外一个URL所指向资源,但两者内部运行机制有着很大区别。...3、主要区别: (1)sendRedirect()方法不但可以在位于同一个主机上不同Web应用程序之间进行重定向,而且可以客户端重定向到其他服务器上Web应用程序资源。...// 设置错误代码原因 response.sendError(407, "Need authentication!!!"

68020

java jsonobjectList_java – JSONObject转换为List或JSONArray简单代码?「建议收藏」

大家好,又见面了,我是你们朋友全栈君。 我已经通过各种线程阅读并发现了类似的问题,但在找到解决我特定问题方法方面却相当不成功....[{“locationId”:2,”quantity”:1,”productId”:1008}]}orr’s type = class org.json.simple.JSONObject 我正在尝试这些数据放入数组.../列表/任何可以使用密钥地方,470,471来检索数据....编辑: 显然我无法回答8个小时问题: 感谢朋友帮助一些摆弄,我发现了一个解决方案,我确信它不是最有说服力,但它正是我所追求: for(Object key: orr.keySet()) { JSONArray...JSONObject ordervalue = (JSONObject)orderOne.get(0); System.out.println(ordervalue.get(“productId”)); } 感谢您帮助建议

8.8K20

web前端开发面试中常见算法题(JS)

11.连字符转成驼峰 12.最长公共前缀 13.加油站问题-贪心算法 14.用正则实现trim() 清除字符串两端空格 15.岛问题:判断有几个岛 16.数字12345678化成RMB形式:12,345,678...str.length-1; i >= 0; i--){ res.push(str[i]); } return res.join(""); } console.log(reverse2("Hello")); 函数添加到...Javascript实现岛问题 16.数字12345678化成RMB形式:12,345,678 思路:字符串切割成数组再反转,遍历数组,加入辅助数组,当数组长度为3倍数,再向辅助数组加入 “,”...母牛每年生一只母牛,新出生母牛成长三年后也能每年生一只母牛,假设不会死。...求N年后,母牛数量。 思路: 因为新生母牛,只有等到第四年才能生小母牛。所以前4年,只有原来一头母牛每年生一头。 第五年以后,除了有前一年牛数量,还有三年前牛可以生新小牛。

57520

今年十八,蓝桥速刷(Python-I)

map() map(A,B) A默认为函数,map()负责B中每一个元素通过A转换为相应结果 那么在本题中,就是通过split()读取进来数组成列表转换为int,也就是整形形式。...2、搞心态A+B 题目描述 输入两个整数ab,计算a+b 本题很简单,但是注意此题是多组测试数据,即需要不停接收系统测试输入,你都可以计算结果并输出 输入格式 输入两个整数AB 范围不超过...,这种方法上面的差不多,ex就ex在它是不停输入一个玩意,需要通过读取异常来实现退出 那么不多bb,直接看代码 while True: try: a,b=map(int,input...,就是自己有点膈应这玩意 首先执行try中代码,如果里面的函数引起了程序错误,那么就执行except中代码 数列 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述   给定一个长度为...n数列,这个数列按从小到大顺序排列。

59720

【LeetCode】超简单!猜数字游戏!

朋友将会根据提示继续猜,直到猜出秘密数字。 请写出一个根据秘密数字朋友猜测数返回提示函数,用 A 表示公牛,用 B 表示奶牛。 请注意秘密数字朋友猜测数都可能含有重复数字。...说明: 你可以假设秘密数字朋友猜测数都只包含数字,并且它们长度永远相等。 解题 当我做这道题时候,有点过分关注公牛奶牛数量统计,忽略掉了既不是公牛也不是奶牛数量统计。...我们假设输入示例是“1123”“0111”,公牛数字统计很简单,遍历一次,判断相同位置上数字是否相等;而奶牛数字统计需要借助两个直接寻址表,分别统计两个输入字符串中不是公牛数字数量。...可以借助既不是公牛也不是奶牛数量统计。 还是刚才示例“1123”“0111”,在“1123”中可以看到‘2’‘3’不属于公牛数字奶牛数字,可以统计到两者不属于数量。...既然是使用一个直接寻址表,怎么才能得到‘2’‘3’呢? 这时候我们就需要一个正负判断了,可以“1123”中所有的数字都是正数,而“0111”中所有的数字都是负数。

1.1K20

299.猜数字游戏,新发明了词儿——正负选择

朋友将会根据提示继续猜,直到猜出秘密数字。 请写出一个根据秘密数字朋友猜测数返回提示函数,用 A 表示公牛,用 B 表示奶牛。 请注意秘密数字朋友猜测数都可能含有重复数字。...说明: 你可以假设秘密数字朋友猜测数都只包含数字,并且它们长度永远相等。 解题 当我做这道题时候,有点过分关注公牛奶牛数量统计,忽略掉了既不是公牛也不是奶牛数量统计。...我们假设输入示例是“1123”“0111”,公牛数字统计很简单,遍历一次,判断相同位置上数字是否相等;而奶牛数字统计需要借助两个直接寻址表,分别统计两个输入字符串中不是公牛数字数量。 ?...可以借助既不是公牛也不是奶牛数量统计。 还是刚才示例“1123”“0111”,在“1123”中可以看到‘2’‘3’不属于公牛数字奶牛数字,可以统计到两者不属于数量。...既然是使用一个直接寻址表,怎么才能得到‘2’‘3’呢? 这时候我们就需要一个正负判断了,可以“1123”中所有的数字都是正数,而“0111”中所有的数字都是负数。

56330

到底什么是面向对象编程?

[Java知己] 前几天网上看到一个有趣面试问题: 农场有头大母牛,每年生头小母牛,小母牛五年后生小母牛,问20年后农场一共有多少头牛?...(使用面向对象编程思维解答) 这个面试问题让我想到了面向过程与面向对象编程区别,咱们先简单了解下这两者定义上区别: 面向过程 就是分析出解决问题所需要步骤,然后用函数把这些步骤一步一步实现,使用时候一个一个依次调用就可以了...看了定义,是不是感觉还是没明白这两者之间区别,(我信你个鬼,糟老头子坏很), 那咱们就用图片来作下对比吧: [在这里插入图片描述] [在这里插入图片描述] 然后我就写了两套代码来作对比,一套是面向过程编程...:391 咱们通过代码演示,你感觉到这两者区别了吗?...面向对象编程对于匀我们来说更容易理解业务逻辑性 就算是自己写代码,过上一段时间,自己再去看,是不是也是一头雾水,得好好看上一段时间才能理得清楚某块代码业务逻辑是怎样 用下面这张图来形容,偶然间看到自己多年前写代码

69510

前端算法题目解析(二)

13-母牛母牛 问题描述: 母牛每年生一只母牛,新出生母牛成长三年后也能每年生一只母牛,假设不会死。...求 N 年后,母牛数量。 思路: 因为新生母牛,只有等到第四年才能生小母牛。所以前 4 年,只有原来一头母牛每年生一头。...:' + fun(12)); 复制代码 17-数组中找出为 M N 个数 先来道简单题目: 给定一个整数数组 nums 一个目标值 target,请你在该数组中找出为目标值那 两个 整数...map 函数中,我们已经 arr[0] 置为首位,此时只要返回一个长度为 1 且首项为空数组([[]]),并且在 map 函数中将其 item([]) 展开即可 注:这里要花点时间好好理解下,比较绕...例如输入 4,5,1,6,2,7,3,8 这 8 个数字,则最大 4 个数字是 8,7,6,5,。 比较简单这些数字组合成一个数组,然后进行从大到小进行排序,取前 K 个即可。

77720

“数学之美”系列七:信息论在信息处理中应用

“互信息”是信息熵引申概念,它是对两个随机事件相关性度量。比如说今天随机事件北京下雨随机变量空气湿度相关性就很大,但是姚明所在休斯敦火箭队是否能赢公牛队几乎无关。...比如 Bush 一词可以是美国总统名字,也可以是灌木丛。(有一个笑话,美国上届总统候选人凯里 Kerry 名字被一些机器翻译系统翻译成了"爱尔兰母牛",Kerry 在英语中另外一个意思。)...具体解决办法大致如下:首先从大量文本中找出总统布什一起出现互信息最大一些词,比如总统、美国、国会、华盛顿等等,当然,再用同样方法找出灌木丛一起出现互信息最大词,比如土壤、植物、野生等等。...也许是急于毕业,他在吉尔等人帮助下想出了一个最快也是最好地解决翻译中二义性,就是上述方法,这个看上去简单方法效果好得让同行们大吃一惊。...在英语中是 Kullback-Leibler Divergence,是以它两个提出者库尔贝克莱伯勒名字命名。相对熵用来衡量两个正函数是否相似,对于两个完全相同函数,它们相对熵等于零。

1.2K90

初阶牛之牛客网刷题集(1)

目录 前言 1.母牛故事 解题思路: 代码实现: 2.替换空格 解题思路: 代码实现 3.二进制中1个数 解题思路 代码实现 结语 1.母牛故事 题目链接:传送门 有一头母牛,它每年年初生一头小母牛...每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年时候,共有多少头母牛?...= EOF, 2.替换空格 题目链接:传送门 描述: 请实现一个函数一个字符串s中每个空格替换成“%20”。...保证字符串中字符为大写英文字母、小写英文字母空格中一种。...)时,遇到空格,就将空格空格后两个字符都占据,这样就可以有三个字符空间来分别存储’%’ ‘2’ ‘0’.了 4.最后返回值字符串返回即可.

37520

LeetCode —— 299. 猜数字游戏

也就是说,这次猜测中有多少位非公牛数字可以通过重新排列转换成公牛数字。 给你一个秘密数字 secret 朋友猜测数字 guess ,请你返回对朋友这次猜测提示。...提示格式为 “xAyB” ,x 是公牛个数, y 是奶牛个数,A 表示公牛,B 表示奶牛。 请注意秘密数字朋友猜测数字都可能含有重复数字。...你思路是什么? 这道题目我思路很简单,分别计算AB数目。 计算A数目通过比较guesssecret两个字符串中位置字符相等个数得到。...如果字符串某个数字及其位置相等,我们就将A加一。否则我们就把两个字符串这个位置两个字符放入两个切片中,这两个切片是sg。 然后再遍历两个切片,两个切片中所有数字数目较小值加到B之上。...最后使用fmt.SprintfA、B格式化到字符串中。 做题时候是不是一次通过,遇到了什么问题,需要注意什么细节?

27420

母牛故事 替换空格 二进制中1个数 不使用第三个变量交换a,b

前言 记录一下牛牛自己在牛客网上刷到一些题目.分享一下牛牛解题思路,希望可以帮到大家. 1.母牛故事 题目链接:传送门 有一头母牛,它每年年初生一头小母牛。...每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年时候,共有多少头母牛?...= EOF, 2.替换空格 题目链接:传送门 描述: 请实现一个函数一个字符串s中每个空格替换成“%20”。...保证字符串中字符为大写英文字母、小写英文字母空格中一种。...)时,遇到空格,就将空格空格后两个字符都占据,这样就可以有三个字符空间来分别存储’%’ ‘2’ ‘0’.了 4.最后返回值字符串返回即可.

17720
领券