华为校园招聘笔试算法题汇总Word文件下载.docx

上传人:b****6 文档编号:21982705 上传时间:2023-02-02 格式:DOCX 页数:10 大小:17.15KB
下载 相关 举报
华为校园招聘笔试算法题汇总Word文件下载.docx_第1页
第1页 / 共10页
华为校园招聘笔试算法题汇总Word文件下载.docx_第2页
第2页 / 共10页
华为校园招聘笔试算法题汇总Word文件下载.docx_第3页
第3页 / 共10页
华为校园招聘笔试算法题汇总Word文件下载.docx_第4页
第4页 / 共10页
华为校园招聘笔试算法题汇总Word文件下载.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

华为校园招聘笔试算法题汇总Word文件下载.docx

《华为校园招聘笔试算法题汇总Word文件下载.docx》由会员分享,可在线阅读,更多相关《华为校园招聘笔试算法题汇总Word文件下载.docx(10页珍藏版)》请在冰豆网上搜索。

华为校园招聘笔试算法题汇总Word文件下载.docx

//////////////////////////////////////////////////////////////////////////

#include 

<

iostream>

cassert>

using 

namespace 

std;

bool 

g_flag[26];

void 

stringFilter(const 

char 

*pInputStr, 

long 

lInputLen, 

*pOutputStr) 

assert(pInputStr 

!

NULL);

int 

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 

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) 

*output++ 

//获得操作数2 

switch 

(*ope) 

case 

+'

:

itoa(operator1+operator2,pOutputStr,10);

break;

-'

itoa(operator1-operator2,pOutputStr,10);

default:

7"

output[] 

arithmetic(input,strlen(input),output);

4.输入1--50个数字,求出最小数和最大数的和

//华为2014年机试题1:

输入1--50个数字,求出最小数和最大数的和 

//输入以逗号隔开 

#include<

stdio.h>

#define 

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.顺序表操作完整示例

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1