去哪儿网2017校招在线笔试(前端工程师)编程题及JavaScript代码

编程题很简单。整个试卷结构为:

一、问答题:

对前端的理解,了解哪些框架库?

二、在线编程题:身份证分组

如下第一道:身份证分组

三、在线编程题:身份证分组、统计字符、酒店价格(三选二)

如下第二三四道题中三选二作答。

我也搞不懂为什么有两部分编程题~~~下面详细说一说编程题目及JS代码实现:

第一道:身份证分组

去哪儿网2017校招在线笔试(前端工程师)编程题及JavaScript代码

去哪儿网2017校招在线笔试(前端工程师)编程题及JavaScript代码

代码:

 var line;
while(line = read_line()){
while(line.indexOf(" ") != -1){
line = line.replace(" ","");
}
if(line.length <= 6){
print(line);
}
else if(line.length > 6 && line.length <= 14){
var line1 = line.substring(0,6);
var line2 = line.substring(6);
print(line1 + " " + line2);
}
else if(line.length > 14 && line.length <= 18){
var line1 = line.substring(0,6);
var line2 = line.substring(6,14);
var line3 = line.substring(14);
print(line1 + " " + line2 + " " + line3);
}
}

说明:全部AC。

第二道:文件扩展名

去哪儿网2017校招在线笔试(前端工程师)编程题及JavaScript代码

去哪儿网2017校招在线笔试(前端工程师)编程题及JavaScript代码

代码:

 var line;
while(line = read_line()){
while(line.indexOf(".") != -1){
line = line.split(".");
print(line[line.length-1]);
}
}

说明:全部AC。

第三道:统计字符

去哪儿网2017校招在线笔试(前端工程师)编程题及JavaScript代码

去哪儿网2017校招在线笔试(前端工程师)编程题及JavaScript代码

代码:

 function find (obj, key) {
if (! typeof obj === 'object') {
return false;
}
if (key in obj) {
return true;
}
else {
return false;
}
}
var line;
while(line = read_line()){
if(Object.prototype.toString.call(line)==='[object String]'){
while(line.indexOf(" ") != -1){
line = line.replace(" ","");
}
var json = {};
for(var i = 0; i < line.length; i++){
if (!find(json, line[i])){
json[line[i]] = 1;
}
else if(find(json, line[i])) {
json[line[i]] = json[line[i]] + 1;
if (json[line[i]] == 3&&((line[i]<='z'&&line[i]>='a')||(line[i] <= 'Z'&&line[i] >= 'A'))){
print(line[i]);
break;
}
else {
continue;
}
}
}
}
}

说明:全部AC。我的实现好像有点复杂,后面会优化代码继续更新,也希望各位可以多多指点,讨论讨论思路。

第四道:酒店价格

去哪儿网2017校招在线笔试(前端工程师)编程题及JavaScript代码

去哪儿网2017校招在线笔试(前端工程师)编程题及JavaScript代码

说明:因为后面三道是三选二,所以最后一道我没做。

上一篇:go语言基础之map介绍和使用


下一篇:treeview调用数据库成树