UVa489-Hangman Judge

UVa489-Hangman Judge

思路:

首先将答案串中的字母标记并计数不同字母个数K,然后遍历回答的串,如果标记过K–并取消标记,否则错误次数D++;
K==0||D>6时退出,判断输赢。

代码:

#include 

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;
}

你可能感兴趣的:(ACM,uva)