• 去哪儿网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。我的实现好像有点复杂,后面会优化代码继续更新,也希望各位可以多多指点,讨论讨论思路。

     

    第四道:酒店价格

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

  • 相关阅读:
    MGR集群中节点间数据一致性如何检查?
    MySQL错误日志出现 [Note] InnoDB: Discarding tablespace of table db.table: Data structure corruption产生可能的原因及解决办法?
    Redis中如何发现并优化生产环境的big key?
    HashHelper
    设计模式-结构型-组合模式
    设计模式-结构型-享元模式
    设计模式-结构型-外观模式
    泛型Generic
    Redis之缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级
    设计模式-结构型-装饰者模式
  • 原文地址:https://www.cnblogs.com/SHERO-Vae/p/5945294.html
Copyright © 2020-2023  润新知