去哪儿网2017校招在线笔试(前端工程师)编程题及JavaScript代码
编程题很简单。整个试卷结构为:
一、问答题:
对前端的理解,了解哪些框架库?
二、在线编程题:身份证分组
如下第一道:身份证分组
三、在线编程题:身份证分组、统计字符、酒店价格(三选二)
如下第二三四道题中三选二作答。
我也搞不懂为什么有两部分编程题~~~下面详细说一说编程题目及JS代码实现:
第一道:身份证分组


代码:
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。
第二道:文件扩展名


代码:
var line;
while(line = read_line()){
while(line.indexOf(".") != -1){
line = line.split(".");
print(line[line.length-1]);
}
}
说明:全部AC。
第三道:统计字符


代码:
 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代码的更多相关文章
- 15分钟带你了解前端工程师必知的javascript设计模式(附详细思维导图和源码)
		15分钟带你了解前端工程师必知的javascript设计模式(附详细思维导图和源码) 前言 设计模式是一个程序员进阶高级的必备技巧,也是评判一个工程师工作经验和能力的试金石.设计模式是程序员多年工作经 ... 
- 9月10日,美团网2014校招研发笔试哈尔滨站 1、链表翻转。给出一个链表和一个数k,比如链表1→2→3→4→5→6,k=2,则翻转后2→1→4→3→6→5,若k=3,翻转后3→2→1→6→5→4,若k=4,翻转后4→3→2→1→5→6,用程序实现
		// reverselink.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" struct Node{ int num; struct No ... 
- WEB前端工程师整理的原生JavaScript经典百例
		一.原生JavaScript实现字符串长度截取 二.原生JavaScript获取域名主机 三.原生JavaScript转义html标签 四.原生JavaScript时间日期格式替换 Date.prot ... 
- 阿里校招内推C++岗位编程题第一题   空格最少的字符串
		给定一个字符串S和有效单词的字典D,请确定可以插入到S中的最小空格数,使得最终的字符串完全由D中的有效单词组成.并输出解. 如果没有解则应该输出n/a 例如: 输入: S = “ilikealibab ... 
- 中级前端工程师要掌握的JavaScript 技巧
		1.判断对象的数据类型 2.Es5实现数组map方法 3.使用reduce实现数组map方法 4.ES5 实现数组filter方法 5.使用reduce实现filter方法 6.ES5 实现数组som ... 
- (转)国内外优秀的Web前端工程师
		1. 国内外优秀的Web前端工程师 寻找Github.微博.知乎等技术社区上比较活跃.影响力大的圈内大神,供大家膜拜! 视野所限,未必全面,欢迎大家推荐.自荐. 排名不分先后,序号只为标记方便. 提供 ... 
- web前端工程师校园招聘要求
		小燕子对紫薇说:“这辈子也别想着进皇宫了”.可后来她们不但进了宫,还都当上了格格.你在想什么?走呗! 1.去哪了网 前端开发工程师 工作地点:北京 工作职责: 负责去哪儿网各产品线Web前端研发: 负 ... 
- 美团点评2017校招笔试真题-算法工程师B
		美团点评2017校招笔试真题-算法工程师B 1.以下关于经典的k-means聚类的说法哪个是错误的? A:k-means聚类算法是全局收敛的 B:k-means的聚类结果和初始聚类中心点的选取有关 C ... 
- [算法 笔记]2014年去哪儿网 开发笔试(续)第一题BUG修正
		上一篇的blog地址为:http://www.cnblogs.com/life91/p/3313868.html 这几天又参加了一个家公司的笔试题,在最后的编程题中竟然出现了去哪儿网开发的第一题,也就 ... 
随机推荐
- HTML—one
			1.我们做一个完整的网页,要做三个部分 前端部分:Html(是一种超文本标记语言,网页)+css(网页外观)+js(执行动作,特效) 数据库:sqlserver 动态部分:.net(平台),c#(语言 ... 
- transfer  between javabean and map
			1. java bean 转化成 map import java.beans.BeanInfo; import java.beans.Introspector; import java.beans.P ... 
- C# on Visual Studio Code
			installation Download .NET Core SDK installer and install it. https://www.microsoft.com/net/download ... 
- 阿里云主机上安装jdk
			今天继续安装jdk到阿里云服务上,大家要看一下阿里云是32位还是64位的,如果是32位下载32位的包,如果是64位的下载64位的包 我的就是64位的,开始我还不知道是怎么区分32/64位的,原来X64 ... 
- ASP.NET WebAPI 11 参数验证
			在绑定完Action的所有参数后,WebAPI并不会马上执行该方法,而要对参数进行验证,以保证输入的合法性. ModelState 在ApiController中一个ModelState属性用来获取参 ... 
- Android5.0新特性——兼容性(support)
			兼容性 虽然Material Design新增了许多新特性,但是并不是所有新内容对对下保持了兼容. 使用v7包 v7 support libraries r21 及更高版本包含了以下Material ... 
- 使用 Canvas 和 JavaScript 创建逼真的下雨效果
			HTML5 规范引进了很多新特性,其中最令人期待的之一就是 Canvas 元素,HTML5 Canvas 提供了通过 JavaScript 绘制图形的方法,非常强大.这里向大家展示一个使用 Canva ... 
- VS2010中重命名项目
			通常,在项目开发初始,一般都是先做一个Demo,以方便进行修改设计.演示等,这可能导致项目命名并不符合最后的规范,则需要修改项目名称.VS没有推出这方面针对性的功能,网友们也纷纷自己写了软件. 方案一 ... 
- C语言接口与实现实例
			一个模块有两部分组成:接口和实现.接口指明模块要做什么,它声明了使用该模块的代码可用的标识符.类型和例程,实现指明模块是如何完成其接口声明的目标的,一个给定的模块通常只有一个接口,但是可能会有许多种实 ... 
- RunLoop机制理解
			一.浅识RunLoop RunLoop在开发中我们一直在用,但是没有注意他.要想理解RunLoop,首先我们需要先了解一下程序运行机制. 程序运行机制:我们都知道OC是运行时语言,也就是说对象的类型是 ... 
