UVa489-Hangman Judge
思路:
首先将答案串中的字母标记并计数不同字母个数K,然后遍历回答的串,如果标记过K–并取消标记,否则错误次数D++;
K==0||D>6时退出,判断输赢。
代码:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,i;
char s[101],me[101];
while(scanf("%d",&n),~n)
{
int k=0,d=0;
scanf("%s %s",s,me);
map<char,int>mp;
for(i=0;i<strlen(s);i++)
{
if(!mp[s[i]]) k++;
mp[s[i]]=1;;
}
for(i=0;i<strlen(me);i++)
{
if(mp[me[i]]) {k--;mp[me[i]]=0;}
else d++;
if(k==0||d>6) break;
}
printf("Round %d\n",n);
if(d>6) printf("You lose.\n");
else if(k) printf("You chickened out.\n");
else printf("You win.\n");
}
return 0;
}