欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2014年华为校园招聘笔试算法试题汇总.doc

    • 资源ID:14571337       资源大小:42KB        全文页数:10页
    • 资源格式: DOC        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2014年华为校园招聘笔试算法试题汇总.doc

    2014年华为校园招聘笔试算法试题汇总1.通过键盘输入一串小写字母(az)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。比如字符串“abacacde”过滤结果为“abcde”。要求实现函数:void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr);【输入】 pInputStr:  输入字符串            lInputLen:  输入字符串长度         【输出】 pOutputStr: 输出字符串,空间已经开辟好,与输入字符串等长; 【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出示例 输入:“deefd”        输出:“def”输入:“afafafaf”     输出:“af”输入:“pppppppp”     输出:“p”main函数已经隐藏,这里保留给用户的测试入口,在这里测试你的实现函数,可以调用printf打印输出当前你可以使用其他方法测试,只要保证最终程序能正确执行即可,该函数实现可以任意修改,但是不要改变函数原型。一定要保证编译运行不受影响cpp view plaincopy/#include <iostream>    #include <cassert>        using namespace std;        bool g_flag26;    void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr)          assert(pInputStr != NULL);      int i = 0;      if (pInputStr = NULL | lInputLen <= 1)                return;            const char *p = pInputStr;      while(*p != '0')               if (g_flag(*p - 'a')                      p+;         else             pOutputStri+ = *p;             g_flag*p - 'a' = 1;             p+;                     pOutputStri = '0'        int main()            memset(g_flag,0,sizeof(g_flag);        char input = "abacacde"        char *output = new charstrlen(input) + 1;        stringFilter(input,strlen(input),output);        cout<<output<<endl;        delete output;        return 0;        2.通过键盘输入一串小写字母(az)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。压缩规则:1、仅压缩连续重复出现的字符。比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc"。2、压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz"。要求实现函数: void stringZip(const char *pInputStr, long lInputLen, char *pOutputStr);【输入】 pInputStr:  输入字符串            lInputLen:  输入字符串长度【输出】 pOutputStr: 输出字符串,空间已经开辟好,与输入字符串等长;【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出示例 输入:“cccddecc”   输出:“3c2de2c”输入:“adef”     输出:“adef”输入:“pppppppp” 输出:“8p”cpp view plaincopy/   #include <iostream>    #include <cassert>        using namespace std;        void stringZip(const char *pInputStr, long lInputLen, char *pOutputStr)          const char *p = pInputStr;      int num = 1;      int i = 0;      p+;      while(*p != NULL)                while(*p = *(p-1)&& *p != NULL)                     num+;           p+;                    if (num > 1)                         int size = 0;               int temp = num;               while(num)             /计算位数                                size+;                 num /= 10;                              num = 1;                   for (int j = size; j > 0; j-)                                  pOutputStri+j-1 = '0'+ temp%10;                   temp /= 10;                              i +=size;               pOutputStri+ = *(p-1);               p+;          else              pOutputStri+ = *(p-1);              p+;                      pOutputStri = '0'            int main()            char input = "cccddecc"        char *output = new charstrlen(input) + 1;        stringZip(input,strlen(input),output);        cout<<output<<endl;        return 0;        3.通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串。输入字符串的格式为:“操作数1 运算符 操作数2”,“操作数”与“运算符”之间以一个空格隔开。补充说明:1、操作数为正整数,不需要考虑计算结果溢出的情况。2、若输入算式格式错误,输出结果为“0”。要求实现函数: void arithmetic(const char *pInputStr, long lInputLen, char *pOutputStr);【输入】 pInputStr:  输入字符串            lInputLen:  输入字符串长度         【输出】 pOutputStr: 输出字符串,空间已经开辟好,与输入字符串等长; 【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出示例 输入:“4 + 7”  输出:“11”输入:“4 - 7”  输出:“-3”输入:“9 + 7”  输出:“0” 注:格式错误cpp view plaincopy/  #include <iostream>        using namespace std;        void arithmetic(const char *pInputStr, long lInputLen, char *pOutputStr)         const char *input = pInputStr;           char *output = pOutputStr;     int sum = 0;     int operator1 = 0;     int operator2 = 0;     char *temp = new char5;     char *ope = temp;     while(*input != ' ') /获得操作数1              sum = sum*10 + (*input+ - '0');          input+;     operator1 = sum;     sum = 0;         while(*input != ' ')              *temp+ = *input+;              input+;     *temp = '0'         if (strlen(ope) > 1 )              *output+ = '0'         *output = '0'         return;              while(*input != '0') /获得操作数2              sum = sum*10 + (*input+ - '0');          operator2 = sum;     sum = 0;         switch (*ope)          case '+':itoa(operator1+operator2,pOutputStr,10);         break;     case '-':itoa(operator1-operator2,pOutputStr,10);        break;     default:         *output+ = '0'         *output = '0'         return;                 int main()            char input = "4 - 7"        char output = "    "        arithmetic(input,strlen(input),output);        cout<<output<<endl;        return 0;        4.输入1-50个数字,求出最小数和最大数的和cpp view plaincopy/华为2014年机试题1:输入1-50个数字,求出最小数和最大数的和    /输入以逗号隔开    #include<stdio.h>    #define N 50    void sort(int a,int n);    int main(void)                char str100;        int aN=0;        gets(str);      /要点1:动态的输入1-50个整数,不能确定个数,只能用字符串输入,然后分离出来        int i=0;        int j=0;        int sign=1;        while(stri!='0')                    if(stri!=',')  /输入时要在半角输入                                if(stri = '-')    /要点:2:有负整数的输入                                   / i+;   /易错点1                    sign=-1;                                else if(stri!='0') /不用else的话,负号也会减去0                                  aj=aj*10 + stri-'0' /要点3:输入的可以是多位数                                           i+;            if(stri=',' | stri='0')  /这个判断是在i自加以后                             aj=aj*sign;  /易错点2                 sign=1;   /易错点3                 j+;    /j就是a数组的个数 范围0到j-1                                        sort(a,j);        printf("Max number + Min number = %d",a0+aj-1);            return 0;        void sort(int a,int n)  /选择排序            int i,j;        int k;        int temp;        for(i=0;i<n-1;i+)                    k=i;            for(j=i+1;j<n;j+)                            if(ak>aj)                    k=j;                        if(i!=k)                            temp = ak;                ak = ai;                ai = temp;                            for(i=0;i<n;i+)            printf("%-5d",ai);        puts("");        初始化顺序表计算线性表的长度插入结点追加结点删除结点查找结点按照序号查找结点按照关键字查找结点显示所有的结点顺序表操作完整示例

    注意事项

    本文(2014年华为校园招聘笔试算法试题汇总.doc)为本站会员(雁**)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开