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

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

一、问答题:

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

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

      如下第一道:身份证分组

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

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

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

第一道:身份证分组

代码:

 1 var line;
 2 while(line = read_line()){
 3     while(line.indexOf(" ") != -1){
 4         line = line.replace(" ","");
 5     }
 6     if(line.length <= 6){
 7         print(line);
 8     }
 9     else if(line.length > 6 && line.length <= 14){
10         var line1 = line.substring(0,6);
11         var line2 = line.substring(6);
12         print(line1 + " " + line2);
13     }
14     else if(line.length > 14 && line.length <= 18){
15         var line1 = line.substring(0,6);
16         var line2 = line.substring(6,14);
17         var line3 = line.substring(14);
18         print(line1 + " " + line2 + " " + line3);
19     }
20 }

说明:全部AC。

第二道:文件扩展名

代码:

1 var line;
2 while(line = read_line()){
3     while(line.indexOf(".") != -1){
4         line = line.split(".");
5         print(line[line.length-1]);
6     }
7 }

说明:全部AC。

第三道:统计字符

代码:

 1 function find (obj, key) {
 2     if (! typeof obj === 'object') {
 3         return false;
 4     }
 5     if (key in obj) {
 6         return true;
 7     }
 8     else {
 9         return false;
10     }
11 }
12 var line;
13 while(line = read_line()){
14     if(Object.prototype.toString.call(line)==='[object String]'){
15         while(line.indexOf(" ") != -1){
16             line = line.replace(" ","");
17         }
18         var json = {};
19         for(var i = 0; i < line.length; i++){
20               if (!find(json, line[i])){
21                   json[line[i]] = 1;
22               }
23               else if(find(json, line[i])) {
24                   json[line[i]] = json[line[i]] + 1;
25                   if (json[line[i]] == 3&&((line[i]<='z'&&line[i]>='a')||(line[i] <= 'Z'&&line[i] >= 'A'))){
26                       print(line[i]);
27                       break;
28                   }
29                   else {
30                       continue;
31                   }
32               }
33         }
34     }
35 }

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

 

第四道:酒店价格

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

原文地址:https://www.cnblogs.com/SHERO-Vae/p/5945294.html