美团笔试编程题 2017-09-01 | JavaScript | 2017/9/1更(找个时间熟悉熟悉赛码、牛客的在线编程环境吧,输入输出有点懵逼) 很多主要是数组、字符串的操作; 还是要多学习:数组对象 12345slice(start,end);//截取split(" ");//分割indexOf();//查找是否存在,有,返回索引;无,返回-1;splice(index,howmany,item....);//删除sort(function);//排序pop();//删返last item;对应shift(),删返first 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152// Q:// 输入:// 第一行n,n个超链接;// 之后每行一个超链接;// 然后一行m,m个已经点击过的超链接,有重复;// 之后每行一个超链接;// 输出:// 未被点击的链接,按字典序排列;// 如:// 输入:// 6// meituan// jindong// tb// bd// tx// sn// 5// jindong// sn// tb// jd// tb// 输出:// bd// meituan// txvar readline ="6 mt jd tb bd tx sn 5 jd sn tb jd tb",clear=[],index;var rl=readline.split(" ");var n = parseInt(rl[0]);// 获取所有链接var all = rl.slice(1,n+1);// 获取所有点击过的var clicked = rl.slice(n+2);//console.log(all,clicked);//去掉clicked重复的for (var i=0;i<clicked.length;i++){ //indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。没有出现则返回-1;str.indexOf()和array.indexOf()都可以if(clear.indexOf(clicked[i]) === -1){ clear.push(clicked[i]); }}//console.log(clear);// 遍历查询clear中的元素是否在all中存在,若存在,获取该元素索引,然后在all中根据索引删除它;for( i=0;i<clear.length;i++){ index = all.indexOf(clear[i]); if(index !== -1){ // splice方法从该索引开始,删除指定数量(1个)的值,不添加新的元素 all.splice(index,1); }}console.log(all.sort()); 1234567891011121314151617181920212223242526272829303132333435363738394041// Q:// 输入:第一行为n,即多少个数字;第二行,为任意0和1,空格隔开;// 输出:最长的相邻两个数都不相同的子串// 如:// 输入:// 10// 0 1 1 0 1 0 1 1 1 0// 输出:// 5//在线笔试用的是Google V8引擎,读取输入用read_line();这里模拟输入var readline = "10 0 1 1 0 1 0 1 1 1 0";var rl = readline.split(" ");var n = parseInt(rl[0]);var num = rl.slice(1);var result = [], cont = [];//对比结果和计数数组var myLength = 1;result.push(num[0]);//存入第一个数进行对比for (var i = 0; i < num.length - 1; i++) {// 判断result的第i个是否等于num的第i+1个是否相等,其实就是num的第i个和i+1个是否相等; if (result[i] !== num[i + 1]) {//不等,则符合条件,长度+1,并num[i+1]存入result做下一次的对比; myLength++; result.push(num[i + 1]); } else { //相等,长度置为1,重新开始计数,并num[i+1]存入result做下一次的对比,这里也要存进去,否则result[i]会被赋值undefined myLength = 1; //再写一遍,没写这个我调试了好久。。。 result.push(num[i + 1]); }// 把每次判断之后得到的结果都存入cont数组 cont.push(myLength);}// 对cont数组按小->大排序cont.sort(function (a, b) { return a - b;});//输出最后一个//pop()删除返回最后一个元素//console.log(cont.pop());console.log(cont[cont.length - 1]);