华为校园招聘算法考试真题Word文件下载.docx
- 文档编号:1128504
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:12
- 大小:16.84KB
华为校园招聘算法考试真题Word文件下载.docx
《华为校园招聘算法考试真题Word文件下载.docx》由会员分享,可在线阅读,更多相关《华为校园招聘算法考试真题Word文件下载.docx(12页珍藏版)》请在冰点文库上搜索。
//////////////////////////////////////////////////////////////////////////
#include
<
iostream>
cassert>
using
namespace
std;
bool
g_flag[26];
void
stringFilter(const
char
*pInputStr,
long
lInputLen,
*pOutputStr)
{
assert(pInputStr
!
=
NULL);
int
i
0;
if
(pInputStr
==
NULL
||
lInputLen
1)
return;
}
const
*p
pInputStr;
while(*p
'
\0'
)
(g_flag[(*p
-
a'
)])
p++;
}else{
pOutputStr[i++]
*p;
g_flag[*p
]
1;
pOutputStr[i]
;
main()
memset(g_flag,0,sizeof(g_flag));
input[]
"
abacacde"
*output
new
char[strlen(input)
+
1];
stringFilter(input,strlen(input),output);
cout<
output<
endl;
delete
output;
return
2.
通过键盘输入一串小写字母(a~z)组成的字符串。
请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。
压缩规则:
1、仅压缩连续重复出现的字符。
比如字符串"
abcbc"
由于无连续重复字符,压缩后的字符串还是"
。
2、压缩字段的格式为"
字符重复的次数+字符"
例如:
字符串"
xxxyyyyyyz"
压缩后就成为"
3x6yz"
voidstringZip(constchar*pInputStr,longlInputLen,char*pOutputStr);
输入字符串长度
“cccddecc”
“3c2de2c”
“adef”
“adef”
“pppppppp”输出:
“8p”
//////////////////////////////////////////////////////////////////////////
stringZip(const
num
NULL)
*(p-1)&
&
num++;
(num
>
size
temp
num;
while(num)
//计算位数
size++;
/=
10;
for
(int
j
size;
j--)
pOutputStr[i+j-1]
0'
temp%10;
+=size;
*(p-1);
cccddecc"
stringZip(input,strlen(input),output);
3.通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串。
输入字符串的格式为:
“操作数1运算符操作数2”,“操作数”与“运算符”之间以一个空格隔开。
补充说明:
1、操作数为正整数,不需要考虑计算结果溢出的情况。
2、若输入算式格式错误,输出结果为“0”。
voidarithmetic(constchar*pInputStr,longlInputLen,char*pOutputStr);
lInputLen:
“4+7”
“11”
“4-7”
“-3”
“9++7”
“0”注:
格式错误
arithmetic(const
*input
pOutputStr;
sum
operator1
operator2
*temp
char[5];
*ope
temp;
while(*input
//获得操作数1
sum*10
(*input++
);
input++;
sum;
*temp++
*input++;
(strlen(ope)
1
*output++
//获得操作数2
switch
(*ope)
case
+'
:
itoa(operator1+operator2,pOutputStr,10);
break;
-'
itoa(operator1-operator2,pOutputStr,10);
default:
4
7"
output[]
arithmetic(input,strlen(input),output);
4.输入1--50个数字,求出最小数和最大数的和
//华为2014年机试题1:
输入1--50个数字,求出最小数和最大数的和
//输入以逗号隔开
#include<
stdio.h>
#define
N
50
sort(int
a[],int
n);
main(void)
str[100];
a[N]={0};
gets(str);
//要点1:
动态的输入1--50个整数,不能确定个数,只能用字符串输入,然后分离出来
i=0;
j=0;
sign=1;
while(str[i]!
='
if(str[i]!
'
//输入时要在半角输入
if(str[i]
//要点:
2:
有负整数的输入
//
i++;
//易错点1
sign=-1;
else
//不用else的话,负号也会减去‘0’
a[j]=a[j]*10
str[i]-'
//要点3:
输入的可以是多位数
if(str[i]=='
str[i]=='
//这个判断是在i自加以后
a[j]=a[j]*sign;
//易错点2
////易错点3
j++;
//j就是a数组的个数
范围0到j-1
sort(a,j);
printf("
Max
number
Min
%d"
a[0]+a[j-1]);
n)
//选择排序
i,j;
k;
for(i=0;
i<
n-1;
i++)
k=i;
for(j=i+1;
j<
n;
j++)
if(a[k]>
a[j])
k=j;
if(i!
=k)
a[k];
a[k]
a[i];
a[i]
%-5d"
a[i]);
puts("
1.初始化顺序表
2.计算线性表的长度
3.插入结点
4.追加结点
5.删除结点
6.查找结点
1.按照序号查找结点
2.按照关键字查找结点
7.显示所有的结点
8.顺序表操作完整示例
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 华为 校园 招聘 算法 考试