Loading [MathJax]/jax/output/CommonHTML/config.js
社区首页 >问答首页 >重复计算部分和精确字符串匹配

重复计算部分和精确字符串匹配
EN

Stack Overflow用户
提问于 2016-02-16 07:37:28
回答 1查看 70关注 0票数 1

我正在用python编写一个程序,它生成一个随机的字母字符串,并让用户尝试猜测该字符串(从可能的字母R、O、Y、G、B或P中)。随机字符串有四个字符长,在用户输入猜测后,将告诉用户有多少个精确匹配,即正确的字母正确位置,以及有多少部分匹配,即正确的字母错误位置。问题是,我计算部分匹配的代码似乎会重复计算精确匹配。例如,如果代码是RGPB,并且用户猜测RGYO,它将报告2确切2部分。有什么关于如何最好地解决这个问题的见解吗?

代码语言:javascript
代码运行次数:0
复制
partialMatches = 0
i = 0
while i < len(guess):
    p = 0
    while p < len(secret):
        if guess[i] == secret[p]:
            partialMatches = partialMatches + 1 
        p += 1
    i += 1
EN

回答 1

Stack Overflow用户

发布于 2016-02-16 07:46:55

另一种(我认为更有Pythonic风格的)解决方案:

代码语言:javascript
代码运行次数:0
复制
exact_matches = sum(1 for (x, y) in zip(guess, secret) if x == y)
partial_matches = len(set(secret) & set(guess)) - exact_matches
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35426479

复制
相关文章
在Go中如何正确重试请求
我们平时在开发中肯定避不开的一个问题是如何在不可靠的网络服务中实现可靠的网络通信,其中 http 请求重试是经常用的技术。但是 Go 标准库 net/http 实际上是没有重试这个功能的,所以本篇文章主要讲解如何在 Go 中实现请求重试。
luozhiyun
2022/09/21
2K0
在Go中如何正确重试请求
gradle中的增量构建
在我们使用的各种工具中,为了提升工作效率,总会使用到各种各样的缓存技术,比如说docker中的layer就是缓存了之前构建的image。在gradle中这种以task组合起来的构建工具也不例外,在gradle中,这种技术叫做增量构建。
子润先生
2021/06/21
7940
gradle中的增量构建
在我们使用的各种工具中,为了提升工作效率,总会使用到各种各样的缓存技术,比如说docker中的layer就是缓存了之前构建的image。在gradle中这种以task组合起来的构建工具也不例外,在gradle中,这种技术叫做增量构建。
程序那些事
2021/02/17
1.8K0
gradle中的增量构建
在我们使用的各种工具中,为了提升工作效率,总会使用到各种各样的缓存技术,比如说docker中的layer就是缓存了之前构建的image。在gradle中这种以task组合起来的构建工具也不例外,在gradle中,这种技术叫做增量构建。
程序那些事
2021/02/25
1.1K0
gradle中的增量构建
【韧性设计】韧性设计模式:重试、回退、超时、断路器
软件本身并不是目的:它支持您的业务流程并使客户满意。如果软件没有在生产中运行,它就无法产生价值。然而,生产性软件也必须是正确的、可靠的和可用的。
架构师研究会
2022/05/25
1.3K0
【韧性设计】韧性设计模式:重试、回退、超时、断路器
Maven进行增量构建
如果要开始任何新的基于Java的项目,则gradle应该是第一选择,但是某些场景或者某些方面,Maven依然有着不错的优势。在编译构建项目时,就会需要一些插件来提供不同的功能支持。
FunTester
2020/04/03
2.8K0
如何让 Gitlab 的 Runner 在构建时拉取 Git Submodules 仓库
默认的 GitLab 的 Runner 在构建时不会去拉取 Git Submodules 仓库,将会提示 Skipping Git submodules setup 跳过初始化 Git Submodule 仓库
林德熙
2021/04/02
2.3K0
原来Kylin的增量构建,大有学问!
本篇博客,博主为大家介绍的是关于Kylin的增量构建的步骤过程,以及其与全量构建的差异对比!看完之后,相信你也一定能够感受到这里面的大学问~
大数据梦想家
2021/01/27
8230
原来Kylin的增量构建,大有学问!
在选择云区域时如何做出最明智的选择
云计算的优势之一是公有云供应商提供了数十个云区域供企业决定在哪里托管工作负载时进行选择。选择正确的云区域对于优化成本、性能、可靠性等很重要。不要默认使用离企业最近的云区域或云计算提供商建议的任何云区域,而是进行研究以确定哪个(或多个)区域可以提供最佳的价值和性能。
静一
2021/07/30
9480
Java函数调用重试的正确姿势
核心功能 提供重试工具类, 支持传入操作、重试次数和延时时间。 支持定义不再重试的异常和条件。
明明如月学长
2021/08/27
2.4K0
etl 增量对比解决方案 etl-engine 如何实现增量对比
模拟一个使用场景,业务系统A表中的数据要同步到数据仓库B表中(最简单的样例是A表与B表结构完全一样),
威哥
2023/03/15
8780
etl 增量对比解决方案 etl-engine 如何实现增量对比
如何在Vue中使用云开发的云函数,实现邮件发送
云开发的云函数能够让我们无需购买和管理服务器,就能够实现一些前端做不了,必须在服务端做的复杂操作,让我们大大降低了运维成本。本篇将会为您讲解,如何在前端主流框架Vue中使用云开发的云函数。 通过本篇您将可以学习到: 如何创建云开发环境 如何在Vue中使用云开发 如何在Vue中利用云开发的云函数,实现邮件的发送 1.创建云开发环境 打开云开发控制台地址:https://console.cloud.tencent.com/tcb,点击新建云开发环境 创建云开发环境 创建后进入控制台首页,复制环境ID保
腾讯云开发TCB
2020/09/14
3.7K0
Flowable 任务如何认领,回退?
上篇文章松哥和大家分享了 Flowable 中设置任务处理人的四种方式,不过那四种方式都是针对单个任务处理人,有的时候,一个任务节点会存在多个候选人,例如 zhangsan 提交一个任务,这个任务即可以 lisi 处理,又可以 wangwu 处理,那么针对这种多个任务候选人的情况,我们该如何处理?今天一起来看看。
江南一点雨
2023/01/04
1.5K0
Flowable 任务如何认领,回退?
Git 如何优雅的版本回退?
在版本迭代开发过程中,相信很多人都会有过错误提交的时候(至少良许有过几次这样的体验)。这种情况下,菜鸟程序员可能就会虎驱一震,紧张得不知所措。而资深程序员就会微微一笑,摸一摸锃亮的脑门,然后默默的进行版本回退。
grain先森
2019/05/07
2K0
Git 如何优雅的版本回退?
上传Maven组件时不断重试&Broken pipe
在云服务器(公网)上装了Nexus作为Maven私服,Nexus使用Nginx代理
码代码的陈同学
2018/06/03
3.1K0
私有存储云如何构建?
构建内部的云存储必须考虑到弹性、选择正确的平台、支持工作流,以及批量部署和跟公有云的集成。 随着时间的推移,存储即服务的交付进展惊人。如今,公有云,如Amazon Web Services和Micro
静一
2018/03/27
15.9K0
如何优雅的进行错误重试
如何优雅的进行错误重试 最近在爬取豆瓣电影所有演员和导演信息的过程中,遇到了一个小问题,目前豆瓣网页端的反爬还是很强的,只有使用代理IP来进行爬取,那么关键的问题来了,即使使用代理IP,也不能100%保证每次请求的不出错误的,那么如何优雅的进行错误重试呢? Python异常判断 Python3版本为我们提供了简单明了的控制语句,即try...except...else,别小看else的加入,我们可以使用它来干很多事。else中的代码只有在没有任何异常发生的情况下才会执行,下一小节我们来看一下,真实业
嘉美伯爵
2021/01/21
4340
聊聊Asp.net Core中如何做服务的熔断与降级
而对于微服务来说,熔断就是我们常说的“保险丝”,意为当服务出现某些状况时,切断服务,从而防止应用程序不断地尝试执行可能会失败的操作造成系统的“雪崩”;或者大量的超时等待导致系统卡死等情况,很多地方也将其成为“过载保护”。
乔达摩@嘿
2023/07/21
3730
聊聊Asp.net Core中如何做服务的熔断与降级
在运行时与构建时如何保护云计算基础设施
在当今的云原生世界中,随着基础设施的飞速发展,大规模构建云计算环境需要可再现性和弹性,因此需要从一开始就优先考虑快速更改和扩展基础设施的能力。
静一
2020/07/16
1.2K0
77.9K Star 的 Axios 项目如何优雅实现请求重试
项目中,经常会有很多用户的网络抽风或者各种原因造成偶发性的网络异常请求错误,如果没有重试机制,有时候体验就比较糟糕。这个时候实现网络错误请求错误重试也能比较好的解决这种偶发场景。
ACK
2020/11/24
3.5K0

相似问题

云函数,部署函数时重试失败重置

27

云函数何时重试?

22

如何计算合流云http宿连接器的最大重试次数和重试回退配置?

226

Kong + Lambda插件-如何开启重试?

10

装配函数的回退实现

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文