【C++刷题】[UVA 489]Hangman Judge 刽子手游戏

题目描述

题目解析

这一题看似简单其实有很多坑,我也被卡了好久才ac。首先题目的意思是,输入回合数,一个答案单词,和一个猜测单词,如果猜测的单词里存在答案单词里的所有字母则判定为赢,如果有一个字母是答案单词中没有的,那么记猜错一次,一旦猜错7次判定为输,如果猜对了一部分判定不输不赢。有一个很难注意到的坑是,猜测单词是从前往后一个个字母开始判定,一旦判定了输或赢直接结束,例如答案单词是abc,猜测单词是fffffffabc,虽然猜测单词里包含了答案单词里的所有字母,但是猜测单词里的前7个字母浪费了7次猜错的机会,则判定为输。

算法思路

输入回合数n,答案单词x1,猜测单词x2,用一个长度26,初始值为0的数组arr记录下答案单词中每个字母的出现次数。变量rest记录还剩下需要猜测的字母个数,当rest==0则判定为赢。变量chance记录剩余猜错的机会,当chance==0则判定为输,其余情况为不输不赢。从头往后遍历猜测单词x2中的每个字母,有下面三种情况

如果rest或chance其中一者为0说明已经判断出了这一轮的结果,那么结束遍历。

如果arr这个字母对应位置上的数字不是0或者-1,说明这个字母在答案单词x1中存在,更新rest的值为减去答案单词x1中这个字母的所有个数,然后修改arr中这个字母位置对应位置上的数字为-1,这样可以跳过之后在猜测单词x2中再次出现改字母的情况。

如果arr这个字母对应位置上的数字是0,说明这个字母在答案单词x1中不存在,chance的值减1。

代码实现

#include <bits/stdc++.h>
using namespace std;
int main()
{int n = 0;while (1){int chance = 7;cin >> n;if (n == -1)break;string x1, x2;cin >> x1 >> x2;int arr[26] = {0};int rest = x1.length();for (int i = 0; i < x1.length(); i++){arr[x1[i] - 'a']++;}for (int i = 0; i < x2.length(); i++){if (rest == 0 || chance == 0)break;if (arr[x2[i] - 'a'] != -1 && arr[x2[i] - 'a'] != 0){rest -= arr[x2[i] - 'a'];arr[x2[i] - 'a'] = -1;}else if (arr[x2[i] - 'a'] == 0)chance--;}cout << "Round " << n << endl;if (rest == 0)cout << "You win." << endl;else if (chance == 0)cout << "You lose." << endl;elsecout << "You chickened out." << endl;}return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker安装nginx并配置https

参考 docker安装nginx并配置https-腾讯云开发者社区-腾讯云 (tencent.com) 证书的生成 参见&#xff1a;SpringBoot项目配置HTTPS接口的安全访问&#xff08;openssl配置&#xff09;_配置接口访问-CSDN博客 步骤 1: 拉取Nginx镜像 docker pull nginx 好使的镜像如下&#x…

「漏洞复现」同享人力资源管理系统-TXEHR V15 DownloadTemplate 文件读取漏洞

0x01 免责声明 请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;作者不为此承担任何责任。工具来自网络&#xff0c;安全性自测&#xff0c;如有侵权请联系删…

权威认可 | 海云安开发者安全助手系统通过信通院支撑产品功能认证并荣获信通院2024年数据安全体系建设优秀案例

近日&#xff0c;2024全球数字经济大会——数字安全生态建设专题论坛&#xff08;以下简称“论坛”&#xff09;在京成功举办。由全球数字经济大会组委会主办&#xff0c;中国信息通信研究院及公安部第三研究所共同承办&#xff0c;论坛邀请多位专家和企业共同参与。 会上颁发…

Python JSON处理:兼容性与高级应用

JSON&#xff08;JavaScript Object Notation&#xff09;作为当前最流行的数据传输格式&#xff0c;在Python中也有多种实现方式。由于JSON的跨平台性和简便易用性&#xff0c;它在数据交互中被广泛应用。本文将重点讨论如何熟练应用Python的JSON库&#xff0c;将JSON数据映射…

STM32智能交通灯系统教程

目录 引言环境准备智能交通灯系统基础代码实现&#xff1a;实现智能交通灯系统 4.1 数据采集模块 4.2 数据处理与控制模块 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景&#xff1a;交通管理与优化问题解决方案与优化收尾与总结 1. 引言 智能交通灯系统通过STM…

数据精度丢失

js数据精度丢失 最近看面试题想到了之前在开发钟遇到过的问题&#xff0c;现总结一下 在开发过程中&#xff0c;发现从后台返回的数据结构中的id字段在前端显示为不正确的值。经过排查&#xff0c;怀疑是JavaScript中Number类型精度丢失的问题。通过将id字段的类型从Number改为…

朴素模式匹配算法与KMP算法(非重点)

目录 一. 朴素模式匹配算法1.1 什么是字符串的匹配模式1.2 朴素模式匹配算法1.3 通过数组下标实现朴素模式匹配算法 二. KMP算法2.1 算法分析2.2 用代码实现&#xff08;只会出现在选择题&#xff0c;考察代码的概率不大&#xff09; 三. 手算next数组四. KMP算法的进一步优化4…

pdf工具

iLovePDF | 为PDF爱好者提供的PDF文件在线处理工具 https://www.ilovepdf.com/zh-cn 图片 pdf 合并成一个pdf也可以拆分

工业三防平板可优化工厂流程管理

在当今高度自动化和数字化的工业生产环境中&#xff0c;工业三防平板正逐渐成为优化工厂流程管理的关键工具。其强大的功能和卓越的性能&#xff0c;为工厂带来了更高的效率、更低的成本以及更出色的质量控制。 工业三防平板&#xff0c;顾名思义&#xff0c;具备防水、防尘、防…

【持续集成_06课_Jenkins高级pipeline应用】

一、创建项目选择pipeline的风格 它主要是以脚本&#xff08;它自己的语言&#xff09;的方式进行运行&#xff0c;一般由运维去做的事情&#xff0c;作为测试而言。了解即可。 --- 体现形式全部通过脚本去实现&#xff1a;执行之前&#xff08;拉取代码&#xff09;执行&…

萝卜快跑:未来出行的双刃剑

欢迎来到 破晓的历程的 博客 ⛺️不负时光&#xff0c;不负己✈️ 在这个日新月异的科技时代&#xff0c;无人驾驶技术正以前所未有的速度改变着我们的出行方式。萝卜快跑&#xff0c;作为自动驾驶出租车领域的佼佼者&#xff0c;其出现无疑为城市交通注入了新的活力&#xff…

入坑树莓派(2)——树莓派4B与手机蓝牙通信

入坑树莓派(2)——树莓派4B与手机蓝牙通信 1、引言 在入坑树莓派(1)中已经搞掂了可视化问题。现在继续开展下一步,尝试与手机通信,一开始是想弄wifi连接的,但发现基于wifi的APP比较难弄,为了降低开发的难度,又因为树莓派板子自带蓝牙模块,所以直接选用蓝牙连接手机…

【数据结构】队列

目录 队列队列的模拟实现队列的链式实现接口实现内部类入队列出队列获取队头元素 但是不删除 判空获取队列元素个数 队列的顺序实现&#xff08;循环队列&#xff09;直接使用顺序表的缺陷接口实现成员变量构造器&#xff0c;设置队列长度为 k向循环队列插入一个元素 成功插入则…

IMU用于针对帕金森患者的去震颤餐勺

近期&#xff0c;一项由土耳其科研人员开发的创新成果FiMec智能防颤勺子&#xff0c;为手部震颤患者带来了福音。这款设备运用先进的振动抑制技术和精密的机器人设计&#xff0c;旨在帮助因神经肌肉系统障碍而遭受手颤困扰的人士实现自主进食。 FiMec智能勺子采用两自由度设计…

点云机器学习算法ICP点云配准方法

点云配准(point cloud registration)的目的是将多个三维点云数据集对齐&#xff0c;以形成一个统一的三维模型。其应用范围广泛&#xff0c;包括机器人定位与导航、三维重建、逆向工程、医学成像、环境感知等。点云配准过程可详细划分为初始对齐、最近点查找、变换矩阵计算、应…

【Chatgpt大语言模型医学领域中如何应用】

随着人工智能技术 AI 的不断发展和应用&#xff0c;ChatGPT 作为一种强大的自然语言处理技术&#xff0c;无论是 自然语言处理、对话系统、机器翻译、内容生成、图像生成&#xff0c;还是语音识别、计算机视觉等方面&#xff0c;ChatGPT 都有着广泛的应用前景。特别在临床医学领…

sentinel网关限流配置及使用

sentinel控制台源码&#xff1a;https://download.csdn.net/download/yixin605691235/89543923 sentinel控制台jar包&#xff1a;https://download.csdn.net/download/yixin605691235/89543931 不同环境直接修改jar包中的application.yml文件中的nacos地址就可以了。 一、网关限…

【简历】郑州某二本学院:前端秋招简历指导,简历通过率接近于0

注&#xff1a;为保证用户信息安全&#xff0c;姓名和学校等信息已经进行同层次变更&#xff0c;内容部分细节也进行了部分隐藏 简历说明 这是一份二本前端同学的校招简历。25届的二本同学求职方向主要是在小公司&#xff0c;但是这个同学他故意把学校放在简历最后&#xff0…

【Agent】信息提取场景

文章目录 场景说明超参数调整top_ktop_ptemparetureresponse_format 提示词优化提取任务通用提示词模板防止badcase的提示词特殊符合划分待提取内容 提取的后处理评估提取性能Experiment1、通过符号学定位原文信息1.1 首位字符在原文中的index1.2 首尾N个字符&#xff0c;中间字…

24/7/12总结

axios Axios 是一个基于 promise 网络请求库&#xff0c;作用于node.js 和浏览器中。 它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生 node.js http 模块, 而在客户端 (浏览端) 则使用 XMLHttpRequests。 get请求: <script>function…