华为上机笔试题目和代码—————语言识别问题

本文提出了一种简单的编程方法来判断一段给定的文字是英语还是德语。通过统计文本中特定字母的频率来进行语言识别。

语言识别问题

时间限制(普通/Java):10000MS/30000MS          运行内存限制:65536KByte

问题描述

给你一段英文或德文文字,你能编程识别它可能是哪种语言吗?研究发现,统计文字中字母“t”(或“T”)与“s”(或“S”)出现的次数,如果给定文字中“t”(或“T”)的出现次数比“s”(或“S”)多,则可能为英文,否则可能为德文。

问题输入

输入包括多个行数,首先给出整数N(1<N<10000),接着给出N行文字,每一行文字至少包括一个字符,至多100个字符。

问题输出

输出包括一行,如果输入文字可能为英文,则输出English,否则输出Deutsch。

样例输入

6

ON THIS THE REST OF THE ACHAEANS WITH

ONE VOICE WERE FOR RESPECTING

THE PRIEST AND TAKING THE RANSOM THAT HE OFFERED; BUT NOT SO AGAMEMNON,

WHO SPOKE FIERCELY TO HIM AND SENT HIM ROUGHLY AWAY.

OLD MAN, SAID HE,

LET ME NOT FIND YOU TARRYING ABOUT OUR SHIPS

样例输出

English

提示

本题纯属虚构
-------------------------------------------------------------------------------------------------------------
代码如下:
#include <iostream>
using namespace std;

void main(){
	int n,S_num=0,T_num=0;
	cin>>n;
	char ch;
	getchar();
	for(int i=0;i<n;i++){
		while(1){
			ch=getchar();
			if(ch=='\n') break;
			 if(ch=='s'||ch=='S') S_num++;
			 if(ch=='t'||ch=='T') T_num++;
			}
	}
	if(S_num>T_num) cout<<"English\n";
	else cout<<"Deutsch\n";
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值