UVA 489 Hangman Judge (字符匹配)

时间:2021-08-06 23:20:32

题意:给一个字符串A,只含小写字符数个。再给一个字符串B,含小写字符数个。规则如下:

1、字符串B从左至右逐个字符遍历,对于每个字符,如果该字符在A中存在,将A中所有该字符删掉,若不存在,则错误次数+1。

2、当错误次数达到7时,游戏结束,输了lose。

3、当串A中已经没有字符了,游戏结束,赢了win。(串B后面还没遍历到的也不用遍历了)

4、当错误次数没到达7,但是字符串A还有剩下的字符没消去,则chickened out。

错满7个就输,在满7个之前匹配完了就赢,在满7个之前没匹配完就chickened out。

思路:将串A统计26个字符是否出现(用hash),遍历串B,每次匹配成功就删掉26个字母中对应那个,匹配失败就统计是否到达7次。

 #include <bits/stdc++.h>
#define LL long long
using namespace std;
const int N=;
int has1[N], num[N];
string s1, s2; int cal() //匹配是-1,大于0小于7是悬着,大于7是挂了
{
int cnt1=, cnt3=;
for(int i=; i<s1.size(); i++) has1[s1[i]]++;
for(int i='a'; i<='z'; i++) if(has1[i]>) cnt1++; //需要多少个才匹配 for(int i=; i<s2.size(); i++)
{
if(has1[s2[i]]) //匹配的
{
has1[s2[i]]=;
cnt1--; //又匹配了一个
if(!cnt1) return -; //匹配完了
}
else cnt3++; //错误的
if(cnt3>=) return ; //错了7个
}
return cnt3;
} int main()
{
freopen("e://input.txt","r",stdin);
int n;
while(scanf("%d",&n),n>)
{
printf("Round %d\n",n);
memset(has1,,sizeof(has1));
memset(num,,sizeof(num));
cin>>s1>>s2;
int tmp=cal();
if(tmp==-) printf("You win.\n");
else if(tmp<) printf("You chickened out.\n");
else printf("You lose.\n");
}
return ;
}

AC代码

UVA 489 Hangman Judge (字符匹配)的更多相关文章

  1. UVa 489 Hangman Judge&lpar;字符串&rpar;

     Hangman Judge  In ``Hangman Judge,'' you are to write a program that judges a series of Hangman gam ...

  2. uva 489&period;Hangman Judge 解题报告

    题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...

  3. uva 489 Hangman Judge(水题)

    题目:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&am ...

  4. uva 489 Hangman Judge

    大意:电脑想个单词,玩家来猜.玩家输入一个个字母,若答案里有这个字母,则显示该单词中所有该字母.最终目标是显示答案所有字母.猜错7次,死: 注意特殊条件:1.玩家不断重复错误的字母,只算一次猜错.2. ...

  5. uvaoj 489 - Hangman Judge&lpar;逻辑&plus;写代码能力&rpar;

    https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  6. Hangman Judge UVA - 489

    In ``Hangman Judge,'' you are to write a program that judges a series of Hangman games. For each gam ...

  7. UVa 489 HangmanJudge --- 水题

    UVa 489 题目大意:计算机给定一个单词让你猜,你猜一个字母,若单词中存在你猜测的字母,则会显示出来,否则算出错, 你最多只能出错7次(第6次错还能继续猜,第7次错就算你失败),另注意猜一个已经猜 ...

  8. 【编程题目】有 n 个长为 m&plus;1 的字符串,如果某个字符串的最后 m 个字符与某个字符串的前 m 个字符匹配&period;&period;&period;

    37.(字符串)有 n 个长为 m+1 的字符串,如果某个字符串的最后 m 个字符与某个字符串的前 m 个字符匹配,则两个字符串可以联接,问这 n 个字符串最多可以连成一个多长的字符串,如果出现循环, ...

  9. (转)MySQL数据表中带LIKE的字符匹配查询

    MySQL数据表中带LIKE的字符匹配查询 2014年07月15日09:56    百科369 MySQL数据表中带LIKE的字符匹配查询 LIKE关键字可以匹配字符串是否相等. 如果字段的值与指定的 ...

随机推荐

  1. sql server 函数

    1.Fun_Split 分割字符串,形成返回表 CREATE FUNCTION [dbo].[Fun_Split] ( @Items VARCHAR(MAX), @SplitStr VARCHAR(M ...

  2. Mysql中使用树的设计

    原来一直使用id与 parent_id结合的办法设计树,最近发现有些问题: 1.查询此结点下所有子结点的需求. 2.查询此结点上所有父结点的需求. 这些需求在oracle和sql server中可以使 ...

  3. 【剑指offer】设置在最小数目的阵列

    转载请注明出处:http://blog.csdn.net/ns_code/article/details/28128551 题目描写叙述: 输入一个正整数数组,把数组里全部数字拼接起来排成一个数.打印 ...

  4. Tarjan笔记1

    Tarjan 2822 爱在心中 ** 时间限制: 1 s ** 空间限制: 128000 KB ** 题目等级 : 钻石 Diamond 题解 题目描述 Description"每个人都拥 ...

  5. numpy教程:统计函数Statistics

    http://blog.csdn.net/pipisorry/article/details/48770785 , , ] , '\n') 输出: True 当然可以设置度参数bias : int, ...

  6. Java的家庭记账本程序(F)

    日期:2019.2.17 博客期:034 星期日 我先配置了Android的相关环境,先试着做了Hello World的测试,但是却出现了很严重的问题,问题如下: Unable to get curr ...

  7. bzoj2049 &lbrack;Sdoi2008&rsqb;Cave 洞穴勘测 link cut tree入门

    link cut tree入门题 首先说明本人只会写自底向上的数组版(都说了不写指针.不写自顶向下QAQ……) 突然发现link cut tree不难写... 说一下各个函数作用: bool isro ...

  8. solr联合多个字段进行检索&lpar;multivalued和copyfield的使用&rpar;

    在实际工作中不仅仅对索引中的单个字段进行搜索.需要进行综合查询. 比如book表中有id,name(标题),price,summary(摘要),content(内容),我们要找一本书的时候,查询关键字 ...

  9. linux安装tmux

    由于tmux依赖于libevent和ncurses-devel,所以应首先有这两个库,和相关的头文件. 1.对于ncurses-devel,可用yum安装. yum install ncurses-d ...

  10. 理解活在Iphone中的那些App (四)

    App生存环境之宿主环境 终于开始说一些技术性的话题了,从这里开始的一些技术细节的东西,以前我也没有太刻意的注意过.为了写这个也是刚刚看了一点资料,如果有纰漏,恳请指出. 一个App生存的宿主环境主要 ...