/*
* 解题思路:
*489的题意有点点绕、理解错了两次、刚开始是拿排序做的,后来发现输入的猜测对错先后顺序会影响输入结果、果断放弃排序思路
*首先题意是:
* 题目给出两个字符串、第一个字符串是被匹配的字符串,第二个相当于是猜测字符串。如果第二个字符串中的字符在第一个字符串中出现,
*则表示猜对(需要注意的是:第二个字符串中字符与第一个字符串中任意一个与之相等的字符都算猜对 );显然,如果没有出现的话表示猜错(需要注意的是:同样的猜*错只算一次
);
* 三种输出情况解释:(在猜测过程中)
* 1、若在猜错7次前第二个字符串将第一个字符串中字符全部猜对,则输出“You win.”;
* 2、若在猜错7次时(第二个字符串还有剩余或刚好完结时候就已经猜错7次),且第一个字符串中还有字符没有猜中,则输出"You lose.";
* 3、若在猜错7次前第二个字符串已匹配完全,并且第一个字符串中还有没有猜中的字符,则输出“You chickened out.”;
* ( ps: 注意输出有句号)
* 我的解题方法是:
* 设置一个标记数组、因为输入的字符串由题意知道一定是小写字母,所以用标记数组标记第一个字符串中出现的字母,然后让第二个字符串挨个尝试匹配,若成功
* 则进行第二个字符串的下一个字符匹配,在匹配的过程中随时判断三种输出情况中的前两种(一定要在过程中判断、因为比如说假如第二个字符串中可能总的猜错次数 * 是大于等于7的,可是在7之前它就有可能匹配成功了! 这是一个注意的要点!),最后如果都没有输出的话则输出第三种情况。
*/
#include <stdio.h>
#include <string.h>
int main( )
{
int n;
int i,j;
int len1 , len2;
int flag,total , Flag;
int vis[ 105 ];
char s[ 5 ][ 105 ];
while( scanf("%d",&n) && n != -1 )
{
memset( vis , 0 , sizeof( vis ) );
getchar( );
gets( s[ 0 ] );
gets( s[ 1 ] );
len1 = strlen( s[ 0 ] );
len2 = strlen( s[ 1 ] );
printf("Round %d\n",n );
for( i=0;i<len1;i++ )
vis[ s[0][i]-'a' ] = 1;
flag = total = Flag = 0;
for( i=0;i<len2;i++ )
{
for( j=0;j<len1;j++ )
if( s[ 1 ][ i ] == s[ 0 ][ j ] )
{
flag = 1;
vis[ s[1][i]-'a' ] = -1;
break;
}
if( !flag && !vis[ s[1][i]-'a' ] )
{
vis[ s[1][i]='a' ] = -2;
total++;
}
if( total == 7 )
{
Flag = 1;
printf("You lose.\n");
break;
}
flag = 0;
for( j=0;j<26;j++ )
if( vis[ j ] == 1 )
{
flag = 1;
break;
}
if( !flag )
{
Flag = 1;
printf("You win.\n");
break;
}
flag = 0;
}
if( !Flag )
if( !flag ) printf("You chickened out.\n");
}
return 0;
}
分享到:
相关推荐
UVa489.cpp
uva11859nim游戏 + 求素因子个数.cpp
uva272
UVA109的题解,经测试完全正确,还附有题解。
有uva刘汝佳文件夹的50道题解,从数据结构开始,以后慢慢上传
包含UVA在线OJ系统的绝大部分的示例代码,并都已AC,可在刷题时参考
UVa在我看来是比较全的一个题解,希望能帮助大家。欢迎下载。
uva最全ac代码
uva531最长公共子序列问题水题,应用简单的dp即可ac有更快速的方法欢迎讨论
uva10755 ac 代码,可以随意更改下载
uva357的栈实现版本
UVA 题目,不是很难,试试吧
《算法竞赛入门经典》UVa配套题目pdf版完整
1.Uva_base的编译 在编译球队时,则需要在当前球队文件夹下打开终端输入执行以下命令(以下命令都是在root下执行的): ./configure make clean make 如果运行Uva_base后,出现球员越界或掉线的情况,就重新...
世界著名大学UVA OJ平台上的题目部分分类,分的不好请原谅。
这是一支完整的uva球队,包含所有基本模块,初者可在上修改得到自己的球队
uva_trilearn2002 源代码
主要是uvaoj习题相关题目 练习题目
这里面全部为在Uva Online Judge上面的部分题目的解答,里面提供了解答使用的源代码。
开源项目-codingsince1985-UVa.zip,Been solving UVa Online Judge Problems in Golang for one year (and counting)