2018网易前端实习笔试题

2023-11-11

前端时间做了网易前端实习的笔试题,偶像想起,总结一下,前面的选择题,我就不一一细说了,主要考察的是对于前端的基础,以及计算机基础,这次主要讲下算法题。所有算法我均用js所写,不同语言思路均相同。
(以下都是我对题目的简述)
1.小易学了集合,已知集合有三个性质:确定性、互异性、无序性,现有以下算式这里写图片描述
输入x,y,z,w确定集合内元素的个数。
这里写图片描述
input:1,2,3,4
output:4

首先拿到这题,可以看到集合的特性,其中最重要的就是这个确定性,说的就是不能重复,我就想到了数组去重,按着这个思路下去,我便找到了解题的思路。上代码,算法实现都是在node环境下。例如,将以下代码保存为array.js ,执行node array.js。输入四个数字,遇到换行为结束。

process.stdin.resume(); 
process.stdin.setEncoding('ascii'); 

var input = ""; 
var input_array = ""; 

process.stdin.on('data', function (data) { 
    input += data; //接受到的输入
    chunk = data.slice(0,-2);
    if(chunk === ""){//遇到空字符执行end
        process.stdin.emit('end');
        return
    }
}); 

process.stdin.on('end', function () { 
    input_array = input.split("\n"); 将输入的以换行符进行分割
    var s = input_array[0];//取第一行
    s = s.split(' ');以空格进行分割输入的字符
    var count=[];//空数组
    var a = parseInt(s[0]);var b = parseInt(s[1]); var c = parseInt(s[2]);var d = parseInt(s[3]); //保存输入的数字
    for(var i = a;i<=b;i++){
        for(var j = c;j<=d;j++){
            var num = i/j;
            if(count.indexOf(num)===-1){//检查空数组是否含有当前数字
               count.push(num);
            }
        }
    }

    console.log(count.length);
});

2.小易生活的世界没有除号,而且所有的运算都是从左往右依次进行计算
input: 3+6*5
output: 45

我想的就是首先让他第一次运算直接执行,如果后面还有字符,那就判断间隔判断符号,依次进行计算

process.stdin.resume(); 
process.stdin.setEncoding('ascii'); 

var input = ""; 
var input_array = ""; 

process.stdin.on('data', function (data) { 
    input += data; 
    chunk = data.slice(0,-2);
    if(chunk === ""){
        process.stdin.emit('end');
        return
    }
}); 

process.stdin.on('end', function () { 
    input_array = input.split("\n"); 
    var s = input_array[0];
    s = s.split('');
    var data=0;
    if(s[1]=='*'){
        data = parseInt(s[0])*parseInt(s[2]);
    }else if(s[1]=='+'){
        data = parseInt(s[0])+parseInt(s[2]);
    }else{
        data = parseInt(s[0])-parseInt(s[2]);
    } 
    if(s.length>4){
        for(var i=3;i<s.length-1;i=i+2){
            if(s[i]=='*'){
                data = data*parseInt(s[i+1]);
            }else if(s[i]=='+'){
                data = data + parseInt(s[i+1]);
            }else{
                data = data - parseInt(s[i+1]);
            } 
        }
    }
    console.log(data);
});

3.有一串数字。如下,去重,并且取重复数字的最后一次出现位置。并输出。
input:100,99,99,100,99,100,100
output:99,100
乍一看这题还是蛮简单,我想着,这不是直接将序列倒叙一下,再进行排序不就好了吗,其实并不是这样。
我的思路是,新建一个数组a,读取当前数组b中的一个数字,查询新数组a中是否含有这个数字,如果不存在,就查询当前数组b这个数字的最后的索引。将新建数组a的与b中相同索引的位置插入此数字,这样。就直接能排好序列了,而且还能去重复,最后将数组中的空位置去掉。



process.stdin.resume(); 
process.stdin.setEncoding('ascii'); 

var input = ""; 
var input_array = ""; 

process.stdin.on('data', function (data) { 
    input += data; 
    chunk = data.slice(0,-2);
    if(chunk === ""){
        process.stdin.emit('end');
        return
    }
}); 

process.stdin.on('end', function () { 
    input_array = input.split("\n"); 
    var s = input_array[1];
    s = s.split(' ');
    s[s.length-1] = s[s.length-1].replace('\r','');
    var a = [];
    for(var i =0;i<s.length;i++){
        // console.log(a.lastIndexOf(s[i]));
        if(a.indexOf(s[i])===-1){//查询是否含有数字
            var num = s.lastIndexOf(s[i]);查询最后的索引
            a[num] = s[i];
        }
    }
    console.log(a.join(' ').replace(/\s+/g, ' ').trim());//此步骤是为了去除空格,为了和最后的输出的格式相同。
});

除了以上算法题目最后还有一题js的demo题
有以下表格。点击成绩能够使表格按成绩从高到底排序。
这里写图片描述

此题的方法就查看我之前的一篇博客
http://blog.csdn.net/blueblueskyhua/article/details/68929578

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2018网易前端实习笔试题 的相关文章

随机推荐

  • 支付宝给个人账号转账付款

    一 说明 转账到支付宝账户是为了满足支付宝商户向其他支付宝账户进行单笔转账的需求 针对具备开发能力的商户 提供通过 API 接口完成单笔转账的功能 商家只需输入另一个正确的支付宝账号 即可将单笔资金从本人的支付宝账户转账至另一个支付宝账户
  • GPT带我学-设计模式-代理模式

    什么是代理模式 代理模式 Proxy Pattern 是设计模式中的一种结构型模式 它为其他对象提供一种代理以控制对这个对象的访问 代理模式有三个主要角色 抽象主题 Subject 真实主题 Real Subject 和代理 Proxy 抽
  • Bootstrap使用方法(个人经验,仅限参考)

    下载Bootstrap 将Bootstrap导入到所需要的项目中 将Bootstrap的css和js的路径引入到所需要的页面 选择所需要的插件 粘贴到所需要的位置 菜鸟教程实例 Bootstrap的JavaScript脚本带有监听事件方法
  • kl散度matlab实现,Kullback–Leibler divergence KL散度

    In probability theory and information theory the Kullback Leibler divergence 1 2 3 also information divergence informati
  • Bash中分号“;”、与“&&“、或(

    linux 中 bash 下执行多个命令时 操作符的区别 cmd1 cmd2 cmd1 和 cmd2 都会 被执行 cmd1 cmd2 如果 cmd1 执行 成功 则执行 cmd2 cmd1 cmd2 如果 cmd1 执行 失败 则执行 c
  • 2022-12-30 Ubuntu 运行qt creator提示qt.qpa.plugin: Could not load the Qt platform plugin “xcb“

    一 Ubuntu 运行qt creator提示qt qpa plugin Could not load the Qt platform plugin xcb qt qpa plugin Could not load the Qt platf
  • python弹球游戏彩蛋

    在上一期 我们已经实现了基本弹球的功能 先总结一下上期的代码 import pygame pygame init width 800 height 600 screen pygame display set mode width heigh
  • OpenGL ES2.0粒子系统(附有源码)

    http blog csdn net cxy200927099 article details 38584487 刚学OpenGL 2个多星期 也算是入门了吧 在看了老外写的书 OpenGL ES 2 for Android A Quick
  • 雅特力at421f串口2串口1互发透传

    void USART1 IRQHandler void static u8 k USART ClearFlag USART1 USART FLAG TC 清除USARTx的待处理标志位 if USART GetITStatus USART1
  • 目标检测:SSD算法原理综述

    SSD Single Shot Detection 是一个流行且强大的目标检测网络 网络结构包含了基础网络 Base Network 辅助卷积层 Auxiliary Convolutions 和预测卷积层 Predicton Convolu
  • NAT穿越原理——STUN

    STUN是RFC3489规定的一种NAT穿透方式 它采用辅助的方法探测NAT的IP和端口 毫无疑问的 它对穿越早期的NAT起了巨大的作用 并且还将继续在ANT穿透中占有一席之地 STUN的探测过程需要有一个公网IP的STUN server
  • Vscode中C++/c按F5调试不了,但是可以右键run code运行的问题

    V s c o d e 里 配
  • 想知道你的Mac是否支持macOS Monterey吗?

    Apple年度WWDC大会已经结束 在WWDC2021上宣布了新系统 macOS Monterey 它为Safari和Mail等应用带来了重大更新 你的Mac是否支持新系统呢 一起跟小编看看吧 https www macv com mac
  • Spark使用场景有哪些?大数据spark教程

    Spark 是一种与 Hadoop 相似的开源集群计算环境 是专为大规模数据处理而设计的快速通用的计算引擎 现已形成一个高速发展应用广泛的生态系统 主要应用场景如下 1 Spark是基于内存的迭代计算框架 适用于需要多次操作特定数据集的应用
  • typora笔记中图片路径批量修改成相对路径

    所有演示均在typora环境下 其他markdown软件不清楚是否都能用 使用之前建议备份一遍 防止出现问题 前置操作 打开typora 进入文件 gt 偏好设置 gt 图像 按照下面的图片勾选被填写图片相对路径 方便以后使用 相对路径 p
  • 【满分】【华为OD机试真题2023 JAVA&JS】分界线

    华为OD机试真题 2023年度机试题库全覆盖 刷题指南点这里 分界线 时间限制 1s 空间限制 32MB 限定语言 不限 题目描述 电视剧 分界线 里面有一个片段 男主为了向警察透露案件细节 且不暴露自己 于是将报刊上的字剪切下来 剪拼成匿
  • [安洵杯 2019]easy_serialize_php

    安洵杯 2019 easy serialize php 本题考点 反序列化的字符串逃逸 变少 extract 变量覆盖 思考过程 首先代码审计可以看到几个关键点 function filter img filter arr array ph
  • 项目1-PM2.5预测

    文章目录 项目1 PM2 5预测 友情提示 项目描述 数据集介绍 项目要求 数据准备 环境配置 安装 预处理 提取特征 1 提取特征 2 归一化 将训练数据分割成 训练集 和 验证集 训练 测试 预测 保存预测到CSV文件 项目1 PM2
  • Gradle 的编译周期

    Project build gradle 多个Task 多个action 一个代码块 在编译过程中 Gradle 会根据 build 相关文件 聚合所有的project和task 执行task 中的 action 依赖逻辑 几乎所有的Tas
  • 2018网易前端实习笔试题

    前端时间做了网易前端实习的笔试题 偶像想起 总结一下 前面的选择题 我就不一一细说了 主要考察的是对于前端的基础 以及计算机基础 这次主要讲下算法题 所有算法我均用js所写 不同语言思路均相同 以下都是我对题目的简述 1 小易学了集合 已知