poj 1219 L-I-N-G-O: LINGO

纯模拟题,注意各种条件,比如开始的空白行要getchar()掉,放弃解答等
#include <cstdio>
#include 
<string>
#include 
<iostream>
#include 
<cstring>
using namespace std;

char in[100], str[100];

int upper(string t)
{
    
for ( int i = 0; i < 5; i++ )
    {
        
if ( 'A' > t[i] || 'Z' < t[i] )
            
return 0;
    }
    
return 1;
}
void change(string t, string & last)
{
    
int i, j;
    
int flag[10];
    memset(flag, 
0sizeof(flag));
    
for ( i = 0; i < 5 ; i++ )
    {
        
if (t[i] == in[i]) flag[i]=1;
    }
    
for ( i = 0; i < 5 ; i++ )
    {
        
if (t[i] == in[i]) last+=t[i];
        
else
        {
            
for ( j = 0 ; j < 5 ; j++ )
            {
                
if(t[i] == in[j] && !flag[j])
                {
                    last
+=in[j]-'A'+'a';
                    flag[j]
=1;
                    
break;
                }
            }
            
if ( 5 == j ) last+= ".";
        }
    }
}

int main()
{
    getchar();
    
while ( gets(in), 0 != strcmp(in"LINGO") )
    {
        putchar(
10);
        printf(
"%c....\n"in[0]);
        string t, gin=in, last;
        last
=in[0];
        last
+="....";
        int i, j, flag= 0;
        
for (i= 0; i < 6; i++ )
        {
            gets(str);
            t
=str;
            
//printf("t=%s\n", t.c_str());
            if ( t == gin )
            {
                printf(
"%s\n", gin.c_str());
                
break;
            }
            
else if ( t == "" )
            {
                flag
=1;
                
break;
            }
            
else
            {
                
if(5 == t.length() && upper(t) )
                {
                    last
="";
                    change(t, last);
                }
                
if ( 5 == i )
                {
                    flag
= 1;
                    
break;
                }
                printf(
"%s\n", last.c_str());
            }
        }
        
if ( flag )
        {
            
for ( j = 0; j < 5; j++ )
                printf(
"%c", gin[j]-'A'+'a');
            putchar(
10);
        }
        
while0 != strcmp(str, "") )
        {
            gets(str);
        }
    }
    
return 0;
}

posted on 2011-08-11 00:22 purplest 阅读(368) 评论(0)  编辑 收藏 引用 所属分类: 模拟


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理


<2011年8月>
31123456
78910111213
14151617181920
21222324252627
28293031123
45678910

导航

统计

常用链接

留言簿

随笔分类(70)

随笔档案(68)

ACMer

搜索

最新随笔

最新评论