您的位置:首页 > 编程语言

华为2016校招机试题(2015年9月) 海大上午场(包含实现代码,运行环境为VS2010)

2015-10-10 10:47 253 查看
描述: 输入2个字符串,将其连接后输出

运行时间限制:无限制

内存限制:无限制

输入:两个字符串,以空格分开。

输出:连接后的字符串。

样例输入:123 abc

样例输出:123abc

#include<iostream>
#include<string>

using namespace std;

int main()
{
string s1;
string s2;
string str_sum;

cin>>s1>>s2;
str_sum = s1+s2;
cout<< str_sum <<endl;

system("pause");
return 0;
}


简单的均值滤波算法

描述:计算机在对模拟信号进行数据采集时,经常会受到干扰,导致读取的数据发生突变。这时就需要对采集的数据做特殊处理。该题目模拟对电池电压的数据采集,限定条件如下:

(1)电池电压的有效范围为【3300-4200】,包括3300和4200,无效值在计算时要丢弃

(2)输入为10组电池电压。包括有效值和无效值,每五组有效电压求一次平均值,作为最终输出值,有效值不够5组不输出

(3)输出的格式为“有效电压组数 平均值1 平均值2”。平均值有几组就输出几组,没有的话不输出。

(4)计算直接考虑整型数据即可,不考虑浮点数

除是输出外,中间不需要有任何的IO数据输出

运行时间限制:无限制

内存限制:无限制

输入:10组电压,为整型数据

输出:输出的格式为:“有效电压组数 平均值1 平均值2”,平均值有几组输出几组,没有的话不输出。“有效电压组数”必须输出

#include<iostream>

using namespace std;
const int cn = 10;  //10组数据
int main()
{
int data[cn];       //电压数据
int aver[cn/5]; //最后的平均值数据
int cur = 0;    //平均值的个数
int i;      //循环变量

//输入数据
for( i = 0; i < cn; i++ )
{
cin>>data[i];
}

int count = 0;  //计数,看是不是5个
int temp_sum = 0;   //5个一组求和
for(i = 0; i < cn; i++ )
{

if( data[i]>=3300 && data[i]<= 4200 )
{
count++;
temp_sum += data[i];
}

if( count == 5 )
{
aver[cur] = temp_sum /5;
cur++;
temp_sum = 0;
count = 0;
}
}
//如果有效电压组数为0
if( cur == 0 )
{
cout<< count <<endl;
return 0;
}
cout << cur <<"   ";
for(i = 0; i<cur; i++ )
cout<< aver[i] <<"   ";

system("pause");
return 0;
}


字符串变换最小费用

描述:给出2个字串A,B,将A字串转化为B字串。转换一共有两种方式

删除连续的n个字符,一次操作费用为2,增加连续的m个字符(增加的字符是什么由你决定),一次操作费用为m+2,求把A变为B最小费用。

时间限制:无限制

运行限制:无限制

输入:第一行输入一个正整数T(1<=T<=10),表示有T组测试数据。

对于每组测试数据,两行字符串A,B(字符串长度不要超过2000,字符仅包含小写字母)

输出: 对于每组测试数据,输出一行一个整数,表示最小费用。

样例输入:

2

dsafsadfadf

fdfd

aaaaaaaa

bbbbbbbb


样例输出:

7

12


提示:‘dsafsadfadf ’变成‘fdfd’最少的代价的一种方法是:

1、‘dsafsadfadf’->’f’ 删除连续的10个,代价2

2、‘f’->‘fdfd’增加连续的3个(‘dfd’),代价为3+2=5

总共的最小代价为2+5=7,其他方法都不小于7

‘aaaaaaaa’变成‘bbbbbbbb’

将前面字符串全部删除,代价为2,增加3个连续的b,代价为10,则总代价为12

第3题的代码实现待解决后上传。如有大神做出,还望上传共享一下
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: