去哪儿秋招前端和软件开发笔试题.docx

上传人:b****5 文档编号:5655926 上传时间:2022-12-30 格式:DOCX 页数:9 大小:18.56KB
下载 相关 举报
去哪儿秋招前端和软件开发笔试题.docx_第1页
第1页 / 共9页
去哪儿秋招前端和软件开发笔试题.docx_第2页
第2页 / 共9页
去哪儿秋招前端和软件开发笔试题.docx_第3页
第3页 / 共9页
去哪儿秋招前端和软件开发笔试题.docx_第4页
第4页 / 共9页
去哪儿秋招前端和软件开发笔试题.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

去哪儿秋招前端和软件开发笔试题.docx

《去哪儿秋招前端和软件开发笔试题.docx》由会员分享,可在线阅读,更多相关《去哪儿秋招前端和软件开发笔试题.docx(9页珍藏版)》请在冰豆网上搜索。

去哪儿秋招前端和软件开发笔试题.docx

去哪儿秋招前端和软件开发笔试题

xxx去哪儿秋招试题

xxx去哪儿前端秋招试题

一、问答题

HTML中的table元素有2种布局(table-layout)算法,请给出默认值。

并详细说明为什么fixed布局要比auto快?

二、编程题

1.版本排序

题目描述:

去哪儿前端技术团队一直很富有创新性,经常为了解决实际工作的一些痛点,自主开发一些工具,来解决这些问题。

这样,工具的版本就成为了很重要的一个点,开发者如何提供正确版本,使用者如何获取正确版本,都是十分重要的。

因此,版本都会遵循业界统一的规范---SemVer。

常规版本规则如下:

(1)版本格式:

主版本号.次版本号.修订号,例如1.2.3,版本的三个位数都必须存在,并且为0到999之间的整数。

(2)主版本号:

当你做了不兼容的功能修改

(3)次版本号:

当你做了向下兼容的功能性新增

(4)修订号:

当你做了向下兼容的问题修正

当然,使用者不一定会指定版本号,可能使用通配符(例如***)未自动获取满足条件的最新版本。

(在本题中,只考虑这种情况表示匹配任意版本例如2.2.*,可以匹配所有2.2.1,2.2.2等;)

现在会给出一个版本列表,并给出使用者的匹配规则,找出符合版本规则而且满足条件的最新版本,并输出,如果没有找到相应结果,则输出0.

输入

输入第一行是一个整数N,之下N(0

输出

5

2.1.4

2.5.7

3.4.6

2.1.8

2.1.0

2.1.*

样例输出

2.1.8

2.在去哪儿,前端工程师,在日常工作中,经常会使用到模版引擎,比较常用的有jQueryTemplate、artTemplate、Mustache等。

现在要求你实现一个简单的类似于Mustache的模版引擎,根据传入的模版字符串和数据,替换模版字符串中的标签,输出出对应的HTML片段。

需要支持的模版标签有:

(1){{keyName}}:

输出对象中属性名为keyName的值。

需要支持多级属性,比如{{keyName.name1.name2}};

(2){{keyName}}content{{/keyName}}:

keyName对应的值为“真”时,输出content,为“假”时不输出

(3){{#arr}}content{{/arr}}:

arr对应的值为“假“时,输出content为“真”时不输出;

(4){{.}}表示数组遍历中当前的元素(可以只考虑基本数据类型)。

(5){{^keyName}}content{{/keyName}}:

keyName对应的值为“假”时,输出content,为“真”时不输出;

注意:

如果给定的数据中,没有对应的属性字段,标签替换为空。

输入:

第一行出入模版字符串(长度不超过1000),字符串中可以包含模版标签,也可以不包括标签。

第二行输入需要渲染的数据(JSON字符串,长度不超过1000)。

输出:

输出对应的HTML的片段。

代码输入:

WelcomeQunar-Man

xxx去哪儿秋招笔试试题

一、编程题

1/3

日本旅行

时间限制:

C/C++语言1000MS;其他语言3000MS

内存限制:

C/C++语言65536KB;其他语言589824KB

题目描述:

楚乔、宇文玥和燕洵在日本旅行,经过了几天的游玩之后,钱包里出现了大量硬币,楚乔决定用钱包里的硬币为宇文玥和燕洵在自动贩卖机买水。

楚乔的钱包里有1元、5元、10元、50元、100元和500元硬币各C1,C5,C10,C50,C100,C500枚。

现在要用这些硬币来到自动贩卖机买价格为A的饮料,假设自动贩卖机所需的硬币金额必须是刚刚好,不能多也不能少,最少需要多少枚硬币?

限制条件

0<=C1,C5,C10,C50,C100,C500<=1000000000

0<=A<=1000000000

依次输入C1,C5,C10,C50,C100,C500和A,以空格分隔,输出最少所需硬币数,如果该金额不能由所给硬币凑出,则返回NOWAY

输入

依次输入C1,C5,C10,C50,C100,C500和A,以空格分隔

输出

输出最少所需硬币数,如果该金额不能由所给硬币凑出,则返回NOWAY

样例输入

321302620

样例输出

6

2/3

带权的DAG节点排序

时间限制:

C/C++语言1000MS;其他语言3000MS

内存限制:

C/C++语言65536KB;其他语言589824KB

题目描述:

DAG即DirectedAcyclicGraph,有向无环图.用DAG可以描述一些有依赖关系的任务组,而这些任务还有另外一个属性,即都有一个权重,标示这个任务的重要性.

我们需要你来实现一个算法,对DAG里面的节点进行排序,保证排序不违背DAG的依赖关系,即一个任务A如果排在任务B前面,那么在DAG中不能存在由B到A的路径.另外一个要求就是,让权重大的任务尽量优先执行.

输入

在第一行给定DAG的节点数n和边数e.

后面n行,每一行是节点的标号和权重,seqweight.

最后e行,每一行是对于边的描述,st.

输出

排序好的节点标号,在一行内输出,空格隔开.

样例输入

44

12

23

35

44

12

13

24

34

样例输出

1324

3/3

模拟LRUCache

时间限制:

C/C++语言1000MS;其他语言3000MS

内存限制:

C/C++语言65536KB;其他语言589824KB

题目描述:

LRU全称是LeastRecentlyUsed,LRUCache的核心设计思想是,如果一个数据在最近一段时间没有被访问到,那么在将来它被访问的可能性也很小。

在cache大小固定的情况下,如果cache满了,会把最近最久没有访问的元素删掉.

实现程序禁用各种语言基础库中的LinkedHashMap.

输入

在第一行给定cache的大小m,对cache执行读写操作的次数n.

从第二行开始,有n行操作命令.

操作有两种情况,put和get.

put命令格式是putkeyvalue,表示向cache写入数据.

get命令格式是getkey,标示从cache读取数据.

输出

对于n行命令中的每一行get命令.

如果对于数据存在,就把value在单独一行打印出来.

如果不存在,就在单独一行打印null.

样例输入

35

putab

putxy

putdkkk

putzzzlll

geta

样例输出

null

Hint

直接在输入的时候进行判断即可

xxx去哪儿软件开发工程师校招试题

一、编程题

编程题|30.0分1/3

最小与最大排列

时间限制:

C/C++语言1000MS;其他语言3000MS

内存限制:

C/C++语言65536KB;其他语言589824KB

题目描述:

定一个大小为m的字符集合,打印其全部k排列中按照字典序排序后最小和最大的两个排列。

其中m,k>0,且k≤m

输入

第一行:

空格分割的字符,互不重复

第二行:

排列数k

输出

第一行:

字典序排序后的最小排列

第二行:

字典序排序后的最大排列

样例输入

abc

2

样例输出

ab

cb

编程题|30.0分2/3

BST判定

时间限制:

C/C++语言3000MS;其他语言5000MS

内存限制:

C/C++语言65536KB;其他语言589824KB

题目描述:

判断给定的二叉树是否为二分查找树。

假设树的每个节点以整数为键值,且不同节点的键值互不相等。

二分查找树成立的判定条件:

对任何非叶子节点A,如果A存在左子树,则A的键值大于其左子树所有节点的键值,且,如果A存在右子树,则A的键值小于其右子树所有节点的键值。

输入

第一行:

根节点键值;

第二行开始,二叉树的结构,每行代表一组根节点与左右子节点的对应关系,-1代表空节点。

格式:

根节点键值:

左子节点键值|右子节点键值

例如,

5:

3|-1

表示键值为5的节点,左子节点的键值为3,右子节点为空节点

假设:

所有节点的键值非负,且不超过1023

输出

判断结果,0表示输入不是二分查找树,1表示输入是二分查找树

样例输入

5

5:

4|7

4:

3|8

7:

2|-1

3:

-1|-1

8:

-1|-1

2:

-1|-1

样例输出

0

编程题|40.0分3/3

乘方取模

时间限制:

C/C++语言1000MS;其他语言3000MS

内存限制:

C/C++语言65536KB;其他语言589824KB

题目描述:

给定非负整数a,b,m,利用基本的算术运算符(+-*/%)以及位运算符,计算abmodm

输入

一行三个非负整数,空格分隔,分为abm的值,其中m不为0

输出

abmodm的结果

样例输入

2105

样例输出

4

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

当前位置:首页 > 法律文书 > 调解书

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

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