最新消息:网站改版咯

百度语言翻译机

C语言 Yovae 2000浏览

百度语言翻译机题目:

百度的工程师们是非常注重效率的,在长期的开发与测试过程中,他们逐渐创造了一套独特的缩略语。他们在平时的交谈、会议,甚至在各种技术文档中都会大量运用。
为了让新员工可以更快地适应百度的文化,更好地阅读公司的技术文档,人力资源部决定开发一套专用的翻译系统,把相关文档中的缩略语和专有名词翻译成日常语言。

输入要求:

输入数据包含三部分:

1. 第一行包含一个整数N(N<=10000),表示总共有多少个缩略语的词条;
2. 紧接着有N行的输入,每行包含两个字符串,以空格隔开。第一个字符串为缩略语(仅包含大写英文字符,长度不超过10字节),第二个字符串为日常语言(不包含空格,长度不超过255字节);
3. 从第N+2开始到输入结束为包含缩略语的相关文档(总长度不超过1000000个字节)。

例:
PS 门户搜索部

NLP 自然语言处理

PM 产品市场部

HR 人力资源部

PMD 产品推广部

MD 市场发展部

百度的部门包括PS,PM,HR,PMD,MD等等,其中PS还包括NLP小组。

样例:in.txt
输出要求:

输出将缩略语转换成日常语言后的文档。(将缩略语转换成日常语言,其他字符保留原样)。例:

百度的部门包括门户搜索部,产品市场部,人力资源部,产品推广部,市场发展部等等,其中门户搜索部还包括自然语言处理小组。

样例:out.txt

C语言源码实现:

/*
 * codig:Yovae
 * 2011-6-1  www.yovae.com
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int n;
char (*words)[2][255],str[10],buf;

int  search(char str[])
{
     int i;
     for(i=0;i<n;i++)
     {
        if(strcmp(str,words[i][0])==0)
        {
          printf("%s",words[i][1]);
          return 1;
        }
     }
     return 0;
}

void init(char str[],int m)
{
     int i;
     for(i=0;i<m;i++)
     {
        str[i]='\0'; 
     }
     
}

int main()
{
    int i,count;
  
    freopen("in.txt","r",stdin);
    freopen("ou.txt","w",stdout);
    scanf("%d",&n);
    words=(char (*)[2][255])malloc(n*2*255);
    for(i=0;i<n;i++)
    {
       scanf("%s%s",words[i][0],words[i][1]);//读入缩略语和对应日常语 
   
    }
    count=0;
    
    while(scanf("%c",&buf)==1)
    {
       if(buf<'A'||buf>'Z')
       {
          if(count==0)
          {
            printf("%c",buf);
          }
          else
          {
             if(search(str)==1)
             {
                 count=0;
                 init(str,10); 
             }
             else
             {
                 for(i=0;str[i]!='\0';i++)
                 {
                    printf("%c",str[i]);
                 }
                 
             }
             printf("%c",buf);
          }
       }
       else
       {
           str[count++]=buf;
       }
    }
    return 0;
} 

转载请注明:Yovae Studio » 百度语言翻译机