思路很简单,题目中说猜对目标字母中的一个字母,就会将所有该字母的位置显现,因此,可以对目标字符进行筛选去重,然后对输入猜测的每个字母进行比对,由于不能猜已经猜过的字母,因此,要对成功猜出的目标字母进行去除(这里用&来去除该字母)
得到的答案有三种:

“you win”代表在错误次数小于七次的时候就已经成功猜测;

“you lose”表示错误次数已经大于七次;

you chickened out”在错误在七次之内且字母并未完全猜出时,猜测的字母已经用尽,即此时仍有猜测机会,但是没有输入字母;

代码如下,

#include<bits/stdc++.h>
using namespace std;
void judge(string s, string t) {int number[26] = {0};int n = s.length();for (int i = 0; i < n; i++) {number[(int)(s[i] - 'a')]++;}char q[26];memset(q, '\0', sizeof(q));int k = 0;for (int i = 0; i < 26; i++) {if (number[i] != 0) {q[k] = (char)( i + 'a' );k++;}}int f = 0;int flag = 0;int l, m;l = t.length();m = strlen(q);int mid = 0;for (int i = 0; i < l; i++) {for (int j = 0; j < m; j++) {if (t[i] == q[j]) {q[j] = '&';flag++;mid = 1;}}if (mid == 1) {mid = 0;} else {f++;}if (f == 7) {break;}if (flag == m) {break;}}if (flag == m && f <= 7) {cout << "You win." << endl;} else if (f < 7 && flag < m) {cout << "You chickened out." << endl;} else if (flag < m) {cout << "You lose." << endl;}}
int main() {string s, t;int l;while (cin >> l ) {if (l == -1) {break;} else {cin >> s >> t;cout << "Round " << l << endl;judge(s, t);}}return 0;
}

UVA - 489 Hangman Judge 刘汝佳紫书题单(算法竞赛入门经典)相关推荐

  1. (精讲)UVA - 1339 Ancient Cipher 刘汝佳紫书题单(算法竞赛入门经典)

    仔细读题并且对比样例可以发现,字母的替换和换元的规律是不同的,所以不能用模拟法将原来的字符串找到进行比对,所以要从替换换元前后的特点来看. 替换: 替换前后的两个字母集合可以看作是一个映射: 例如 H ...

  2. UVA - 1225 Digit Counting(刘汝佳紫书题单(算法竞赛入门经典 第二版 2014)

    个人感觉这道题有表述问题 他的题目表述说明测试数据中的数是不超过20的,但其实他的测试点中是有百位数的,所以按两位数去处理数据显然会造成数组越界. 代码如下 #include <bits/std ...

  3. [紫书CH0] 《算法竞赛入门经典》(第2版) 题解目录

    紫书题解 本着仅仅门外看看风景的初心,却 不慎 被其内壮丽美景所深深吸引.将会持续的画上一段时间对紫书进行系统性的学习,相关的 UVa 经典习题会道道完成并贴出题解供大家学习交流.也算是记录我曾经来过 ...

  4. 刘汝佳紫书 uva1592

    刘汝佳上传的代码没耐心看...就大致照着书上写的思路写了一个...一开始发现全写错了耗了半天... 定义一个pair,这个pair里有存两个队,字符串对和int对.每每读入一行的时候看看map中是否存 ...

  5. UVa 11062 Andy's Second Dictionary(刘汝佳紫书升级题)

    在介绍这道题之前,先介绍一下紫书里面和这道题很像的一道题: 紫书P112页 的例题5-3 安迪的第一个字典(Andy's First Dictionary UVa 10815) 原题链接如下: And ...

  6. c语言 开灯问题,刘汝佳紫书[数组和字符串]内容总结

    本篇文章是笔者对紫书第3章--数组和字符串内容的一个整理,主要是基于问题的整理,总结并理顺了一下思路. 不得不说,这些题解真的是太巧妙了

  7. 整理 刘汝佳紫书第三章习题代码 未完待续

    还有一会儿要去剑道社训练...就整理整理好了... 习题3-1 得分 UVA1585 代码: #include <iostream> using namespace std; int ma ...

  8. AC自动机模板(摘自刘汝佳紫书,无指针)

    本题的题目选择的是 病毒侵袭持续中 HDU - 3065 const int size=5e4+5; const int SIGMA_SIZE=26; int trie[size][26],val[s ...

  9. UVa 489 Hangman Judge

    又是一个星期五, 开始发UVa的代码了啊! 比较忙的我没有太多练习题目的时间,所以就简简单单的找了一道水题来做,这道题没什么可以说的,所以就直接附上代码 地址在vjudge.net或UVa上 //yi ...

最新文章

  1. SQL Server 堆heap 非聚集索引 Nonclustered index 行号键查找RID loopup结合执行计划过程详解
  2. 5专题总结-数据结构
  3. java中的sql语句书写_Java中sql语句之通配符*
  4. 通过字符串的方式读取文件的内容
  5. 如何查看jsplumb.js的API文档(YUIdoc的基本使用)#华为云·寻找黑马程序员#
  6. ubuntu下screen的使用
  7. 基于SSM的猫头鹰物流网站
  8. 实验室计算机系统权限管理规程,计算机辅助建筑设计实验室使用规范(试行)...
  9. java数组和集合的区别_java中数组和集合的区别是什么?
  10. npm error! npm Maxium size exceed
  11. sap事务代码如何收藏_SAP仓库管理模块事务代码大全
  12. aws 数据库迁移_使用AWS进行数据库迁移
  13. VMware安装Kali2021虚拟机
  14. 绘画系统(02):【纲】Paint Devices and Backends[官翻]
  15. Mac 删除分区与合并分区
  16. ElementUI 文本内容不能自动换行,内容超出显示(遇到中文、空格才会换行)
  17. 码农翻身——Redis:MySQL算老几?
  18. 【业界冥灯】今年校招太难了我面试过的大厂都逃不过被制裁的命运
  19. 不朽凡人 第五百四十一章 再见温连汐
  20. 数字金字塔 (15 分)

热门文章

  1. 二叉树前中后序遍历+刷题【中】【数据结构/初阶/C语言实现】
  2. 数字逻辑实验——138译码器
  3. Java编程那些事儿102——网络编程技术1
  4. 打破Transformer宿命!新秀VOLO开源!横扫CV多项记录,首个超越87%的模型
  5. 仰望星空 ecnu
  6. 好像模拟了一个引力场
  7. 2017中国(上海)国际物联网大会在上海隆重召开
  8. Elasticsearch插件安装之cerebro(八)
  9. 基于WEB的Office文档打印——浏览器中静默打印Word文档
  10. 【voice-ui】代码用例展示并改主题配色,添加一键复制功能