美文网首页
2020-春招-华为笔试

2020-春招-华为笔试

作者: NnnLillian | 来源:发表于2020-02-29 22:54 被阅读0次

吐槽+提醒

前天笔试完,没有一道题是AC的,考完再复盘,才发现每道题都没有100%通过,都是因为粗心大意不好好审题。希望大家一定要好好看题!!!

正文

1.比特块

在一个int型整数(对应的比特流)中查找某个比特块(本题固定为5,即二进制“101”)出现的次数及首次出现位置,说明:
1.输入次数和首次出现的位置中间用空格隔开。
2.位置从0 开始,即最右边位置为 0,向左依次增加。
3.如果该int型整数中没有找到该比特块,次数返回0,位置返回-1。
4.比特位允许重复使用,如 10101 中间的比特1 可以与前面的01 组成 101,也可以与后面的 10 组成 101。

输入描述:

一个任意的十进制 int 型整数

输出描述:

在输入整数对应的二进制比特流中,比特块(101)出现的次数和首次出现的位置,次数和位置分别以十进制 int 型整数表示,中间用空格隔开

示例输入:

21

示例输出:

2 0

代码(JavaScript V8):
while(line=readline()){
    let num=parseInt(line.trim());
    let count=0, firstIndex=-1, numStr='';

    if(num<0){
        numStr=to2String(num)
    }else{
        numStr=num.toString(2)
    }
    for(let i=numStr.length; i>2; i--){
        if(numStr.slice(i-3,i)=='101'){
            count++;
            firstIndex=numStr.length-i;
        }
    }
    console.log(count+' '+firstIndex);
}

const to2String=(n)=>{
    let output=[],temp;
    for(i=0;i<32;i++){
        temp=n&(1<<31-i);
        temp=temp>>>31-i;
        output.push((temp==0)?'0':'1');
    }
    return output.join('');
}

2.文本解析

某程序员小A,有一种表格数据需要存储在文件中。表格中的每行,由若干个字骤组成,每个字段可以是整数字符串(字符包数字字母以及特殊字符!@#¥%……&*()",)。小A 设计了一种存储格式,采用文本的方式对表格数据进行存储。文本文件中的每行,代表了表格数据中的行数据。具体格式如下:
   1. 采用号分隔不同的字段(逗号前后无空格);
   2. 数字直接采用 10 进制的文本存储;
   3. 字符串的存储规则如下
        1)如果字符串中包含逗号以及双引号,则字符串必须在头尾各增加一个双引号,且中间的双引号需要用连续两个双引号来表示。例如:"a,""b",表示字符串 a,"b
        2)如果字符串中末包含逗号以及双引号,则字符串不强制要求在头尾增加双引号,可直接存储。例如:abc,或者"abc"都可以。
   4.空字符串不存储任何字符,例如:a,,b中,有3 个字段,分别为a,空字符串,b;
请帮助小A 设计个算法,用来将单行文本,解析成多个字段,并输出。

输入描述:

用于存储单行表格数据的一行文本。
1、用手分隔不同字段的号前后一定没有空格,程序设计者无需考虑此种异常情况
2、除数字、字母以及特殊字符!@#¥%……&*()",外,不会出现其它字符
3、输入的数字一定是 10 进制合法正整数,不会出现负数、小数、其它进制数以及格式错误的 10 进制数

输出描述:

第一行,字符串格式是否正确,正确输出字段个数,不正确输出ERROR。
如果输入字符串格式不正确,则输出结束。

如果字符串格式正确,则输出每个字段的值,每个字段单独占一行。
数字采用 10 进制输出,字符串输出解析后的值。

空字符串输出--

示例输入:

a,,1,"b,"""

示例输出:

4
a
--
1
b,"

代码(JavaScript V8):

正确率我也不敢保证,毕竟我这道题没过,但是两个可以通过以下两个测试用例。

  1. a,,1,"b,"""
  2. ,"abc",1,"b,","a,""","6""",bk,,op,"fa","cd
while(str=readline()) {
    let newStr = '',
        flag = false;

    const reg = new RegExp(/[^A-Za-z0-9!@#¥%……&*(),"]/g)
    if (reg.test(str)) {
        console.log('ERROR');
    } else {
        for (let i=0;i<str.length;i++) {
            
            if (str[i] === '"') {
                flag = true;
            }
            if (!flag) {
                if (str[i] === ',') {
                    newStr += ']';
                } else {
                    newStr += str[i];
                }
            } else {
                if (str[i] === '"' && str[i + 1] === '"') {
                    newStr += str[i];
                    i++;
                    newStr += str[i];
                } else if (str[i] === '"' && str[i + 1] === ',') {
                    newStr += str[i];
                    i++;
                    newStr += ']';
                    flag = false;
                } else {
                    newStr += str[i];
                }
            }
        }
        newStr=newStr.replace(/""/g,'[');
        newStr=newStr.replace(/"/g,'');
        newStr=newStr.replace(/\[/g,'"');
    }
    let arr=newStr.split(']')
    console.log(arr.length);
    for(j in arr){
        if(arr[j].length===0){
            console.log('--')
        }else{
            console.log(arr[j])
        }
    }
}

3.社交软件好友度

有一款社交软件 APP,假说注朋用户m人(0<m<50),用编号为 0~m-1,r[i,j]表示用i 和用户j 好友关系(r[i][j]=0 代表i和j不是好友,r[i][j]=1~9 代表是好友目数值代表熟悉程度,数值越大代表越熟悉,其中r[i][j]=r[j][i],0<=i,j<=m-1)试编制程序,输出某个特定用户i的n 度好
友(1 度好友代表直接好友,2 度好友代表好友的好友,以此类推1<=n<=10),并按推荐值降序输出好友列表(推荐值相同的好友,按好友编号升序,其中推荐值是指关系熟活度之和,比如朋户i和j是好友,且熟悉度r[i][j]=4 ,j和k是好友且熟活度小r[j][k]=6,且i和k 不是好友即r[i][k]=0,则用户k 是用户i的2 度好友且推荐值为可r[i][j]+r[j][k]=10),如果此用户i 没有n 度好友输出-1。

输入描述:

输入一个整数T,表示有T组测试数据(0<T<100)。

对于每组测试数据输入2行

第1行 输入3 个整型数 m,i,n 分别代表用户数 m,某个用户编号 i,n度好友, 即代表本组测试需要输出用户i的n度好友
第2 行 输入1 个整型数 k,接下来 3*k 个整数用空格隔开,每三个组成关系对,每个关系由3 个整型数组成 i,j,w 代表用户主和的熟悉程度,即 r[i][j]=w,没有输入的关系默认为非好友(r[i][j]=r[j][i]=0)

输出描述:

输出T行,每行对应每组测试数据的用户i的n 度好友,按推荐值降序输出,推荐值相同的好友按好友编号升序,编号间用空格隔开。如果没有n 度好友输出-1

示例输入:

2
10 5 2
13 0 3 5 0 4 9 0 6 8 0 7 5 1 2 6 1 6 1 2 9 7 3 4
3 3 5 3 3 8 3 3 9 3 5 8 9 7 8 9
10 0 2
13 0 3 5 0 4 9 0 6 8 0 7 5 1 2 6 1 6 1 2 9 7 3 4
3 3 5 3 3 8 3 3 9 3 5 8 9 7 8 9

示例输出:

7 0 4 9
1 5 8 9

代码(JavaScript V8):
// 等待更新

相关文章

  • 2020-春招-华为笔试

    吐槽+提醒 前天笔试完,没有一道题是AC的,考完再复盘,才发现每道题都没有100%通过,都是因为粗心大意不好好审题...

  • 华为招聘笔试面试题记录

    1、华为TI软件开发(优招笔试题) 一、华为TI软件开发(优招笔试题) 第一题 (太简单不写了) 第二题 一个系统...

  • 华为历届笔试面试题整理大全

    整理了一下华为往届笔试面试题,希望对大家有帮助: 来源:华为笔试面试圈>> 1、2018华为校招机试题目 2、20...

  • 2018年东莞银行外汇及衍生业务交易岗社会招聘公告

    来源:东莞银行 2018银行春招笔试辅导课程2018各大银行春招公告汇总 2018银行春招推荐考试用书2018广东...

  • 反省一下校招(春招实习),准备秋招咯

    心态 心态 心态 春招笔试了很多家,面试了很多家,大公司offer没拿到,现在大公司还剩下美团没凉,华为没凉,腾讯...

  • 首站华为

    前几天投了华为优招,笔试后通知过去面试,共两面,笔试是三道编程题,华为真是简单粗暴,前面两个题目是水题直接用api...

  • 算法题

    名企笔试:网易2017春招笔试(工作安排)【http://mp.weixin.qq.com/s/y08d3WhZK...

  • 网易校招研发工程师模拟笔试题(二)

    上一篇: 网易校招研发工程师模拟笔试题 上一篇和这一篇均是网易2015年秋招笔试题,牛客网作为本次春招模拟题使用,...

  • 签Offer的血泪史,第一个就能把人看哭……

    每个参加过春招的人,都经历过从期待到兴奋到煎熬,再到失落的过程…… 网申、笔试、单面、群面,对于参与春招的人来说,...

  • 华为校招笔试:洞穴逃生

    题目 原文 精灵王子爱好冒险,在一次探险历程中,他进入了一个神秘的山洞。在洞穴深处,精灵王子不小心触动了洞穴内暗藏...

网友评论

      本文标题:2020-春招-华为笔试

      本文链接:https://www.haomeiwen.com/subject/buhjhhtx.html