顺丰前端笔试第二道编程题的疑惑

是不是本身输入的两个字符串都是没有重复的呢,还是可以有重复,然后先对自身的重复字符都去掉,然后再对两个字符串对比去掉重复的,再进行排序和反转输出#前端##顺丰科技##笔试题目#
全部评论
你第一题ac了吗
点赞 回复 分享
发布于 2018-09-15 16:05
//给定两个字符串,求差集 function compare(str1,str2) { var str11=str1.split(''); var str22=str2.split(''); var res=[] for(var i=0;i<str11.length;i++){ if(str22.indexOf(str11[i])==-1){ res.push(str11[i]) } } for(var j=0;j<str22.length;j++){ if(str11.indexOf(str22[j])==-1){ res.push(str22[j]) } } var resul=res.sort().reduce(function(ac,cur){ var len=ac.length; if(len===0||ac[len-1]!=cur){ ac.push(cur) } return ac; },[]); var result=resul.sort(function (a,b) { return b-a; }) var result1=result.concat([]); var result2=result.reverse(); var result3=result1.concat(result2).join('') return result3; }
点赞 回复 分享
发布于 2018-09-15 13:34
//已经解出来了,完整代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <p id="box"></p> <script> function compare(str, str1) { var strone = str; var strtwo = str1; var obj1 = {}; var obj2 = {}; var rarr = []; var rarr2 =[]; for(var x=0;x<strone.length;x++){ var chart = strone.charAt(x); if(obj1[chart]){ obj1[chart]++; }else{ obj1[chart]=1; } } for (var k in obj1) { if (obj1[k] === 1) { rarr.push(k); } } for (var y = 0; y < strtwo.length; y++) { var chart2 = strtwo.charAt(y); if (obj2[chart2]) { obj2[chart2]++; } else { obj2[chart2] = 1; } } for (var l in obj2) { if (obj2[l] === 1) { rarr2.push(l); } } strone = rarr.join(""); strtwo = rarr2.join(""); for(var i = 0;i<strone.length;i++){ for(var j=0;j<strtwo.length;j++){ if(strone.charAt(i) === strtwo.charAt(j)){ var strr1 = strone.split(`${strone.charAt(i)}`).join(''); var strr2 = strtwo.split(`${strtwo.charAt(j)}`).join(''); } } } var arrNovel = []; arrNovel.push(strr1); arrNovel.push(strr2); var result = arrNovel.join(""); var zsort = result.split("").sort(); var fsort = []; for(var i= zsort.length-1;i>=0;i--){ fsort.push(zsort[i]); }; var lastResult = zsort.concat(fsort).join(""); return lastResult; } window.onload = function () { document.getElementById('box').innerHTML = compare("aaaas1234dasdadassfaf5f4a6f4a684a6dAf", "wqefasf84fs4fsdrd"); } </script> </body> </html>
点赞 回复 分享
发布于 2018-09-15 13:32
直接用一个map,记录字母出现的次数,然后把次数为1的字母拿出来排序,反转整合就行了
点赞 回复 分享
发布于 2018-09-15 13:05
//我的代码如下:第二题 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <p id="box"></p> <script> function compare(str, str1) { var strone = str; var strtwo = str1; for(var i = 0;i<strone.length;i++){ for(var j=0;j<strtwo.length;j++){ if(strone.charAt(i) === strtwo.charAt(j)){ var strr1 = strone.split(`${strone.charAt(i)}`).join(''); var strr2 = strtwo.split(`${strtwo.charAt(j)}`).join(''); } } } var arrNovel = []; arrNovel.push(strr1); arrNovel.push(strr2); var result = arrNovel.join(""); var zsort = result.split("").sort(); var fsort = []; for(var i= zsort.length-1;i>=0;i--){ fsort.push(zsort[i]); }; var lastResult = zsort.concat(fsort).join(""); return lastResult; } window.onload = function () { document.getElementById('box').innerHTML = compare("as123456dAf", "wqerd"); } </script> </body> </html>
点赞 回复 分享
发布于 2018-09-15 13:01

相关推荐

1.&nbsp;js中变量都是怎么定义的2.&nbsp;说一下为什么&nbsp;const&nbsp;是不可变的3.&nbsp;let和var变量提升的时候提升到什么地方了4.&nbsp;js中在a.js中var&nbsp;a&nbsp;=&nbsp;1,在b.js中能访问到吗5.&nbsp;输出?为什么?var&nbsp;a&nbsp;=&nbsp;1{console.log(a)var&nbsp;a&nbsp;=&nbsp;2}console.log(a)6.&nbsp;输出?为什么?var&nbsp;a&nbsp;=&nbsp;1;{console.log(a)let&nbsp;a&nbsp;=&nbsp;2}console.log(a)7.&nbsp;promise是什么8.&nbsp;什么是同步,异步9.&nbsp;那么promise中哪些是同步哪些是异步10.&nbsp;promise的方法执行顺序是怎么样的11.&nbsp;js中有哪些数据类型12.&nbsp;对于number,怎么定义二进制、十进制、八进制、十六进制,除了加前缀还有什么方法13.&nbsp;假如要定义浮点类型,.2这种方式对吗14.&nbsp;string定义方式15.&nbsp;单引号、双引号、反引号定义有什么区别16.&nbsp;===&nbsp;==区别17.&nbsp;true&nbsp;==&nbsp;-118.&nbsp;null&nbsp;==&nbsp;underfined19.&nbsp;令underfined&nbsp;=&nbsp;1这种写法对吗20.&nbsp;输出?为什么?let&nbsp;a&nbsp;=&nbsp;0&nbsp;/&nbsp;0;let&nbsp;b&nbsp;=&nbsp;1&nbsp;/&nbsp;0;a&nbsp;==&nbsp;b21.&nbsp;输出?为什么?let&nbsp;a&nbsp;=&nbsp;0&nbsp;/&nbsp;0;let&nbsp;b&nbsp;=&nbsp;0&nbsp;/&nbsp;0;a&nbsp;==&nbsp;b如何准确比较22.&nbsp;输出?为什么?''&nbsp;==&nbsp;'0'0&nbsp;&nbsp;==&nbsp;''23.&nbsp;说一下浅拷贝和深拷贝24.&nbsp;什么情况用浅拷贝/深拷贝25.&nbsp;怎么实现深拷贝,哪些情况stringify无法实现26.&nbsp;讲一下什么是webpack27.&nbsp;有哪些loader28.&nbsp;热更新怎么实现的29.&nbsp;http,https有什么区别,为什么https更安全30.&nbsp;git中怎么拉取代码31.&nbsp;git&nbsp;clone/fork/branch有什么区别32.&nbsp;git&nbsp;pull&nbsp;和fetch有什么区别33.&nbsp;git&nbsp;rebase/merge有什么区别34.&nbsp;Branch&nbsp;B中提交了commit1,commit2,在branch&nbsp;A中想要拉取branch&nbsp;b的commmit1,怎么做35.&nbsp;算法,给一个数组nums,要找出数组中没有出现的最小正整数
发面经攒人品
点赞 评论 收藏
分享
一面&nbsp;1.SQL占位符了解吗(#{}和${})2.批量&nbsp;SQL&nbsp;INSERT&nbsp;操作时,每条记录的列结构(即占位符数量和类型)不固定时如何解决(说说了固定一条来操作,或者分组为几条来操作,他不是很满意,他想要动态的来操作)3.网络套接字Socket会用吗4.介绍下你的项目5.为什么想来游戏厂6.除了Java还会其他语言吗7.为什么选择Java反问:1.了解到要转码到Erlang,可以说说企业对这种转码如何培训和引导(有导师到,转码语言以自学为主)2.工作时间是(双修,早九晚六,但几乎每天都会加班到八点,强调这个加班有钱)3.要写lua脚本吗(不用,鼓励学习)二面(先技术面再hr面)1.MySQL的数据存储在哪2.一条&nbsp;SELECT&nbsp;语句从被客户端发出到最终从存储文件中找到数据并返回结果的过程描述一下3.说说MySQL&nbsp;客户端/服务器协议(不太明白,只说了说协议规定数据的Encode、Decode)4.了解游戏开发服务端同步机制吗?(简单介绍了下帧同步)5.让你设计一个游戏用户的签到功能,能统计签到次数给用户发放奖励,详细说说你的设计思路(说了布隆过滤器)6.当用户签到次数到了一定的数量给用户发放奖励,说说在用户点击点击“领取”键来领取奖励时,服务端如何实现这一过程(这里想的有点乱,我一开始以为发放奖励是直接入到用户的账号,“领取”键只是一个通知界面,但他是点击后领取奖励)7.如何防止用户重复领取(幂等性)下面是hr面1.户籍地、工作意向地点2.主要投递的岗位3.为什么投递游戏服务端开发工程师4.如何学习技术,特别是编程语言的学习(因为他们要求转码到Erlang)5.说说你项目的背景6.现在手上offer的情况7.说说你的期望薪资8.(我说了个范围)他进一步问什么样的企业你会想要你自己期望薪资的最大薪资,什么样的企业你能接受你自己期望薪资的最小薪资反问:1.游戏服务端开发要和游戏客户端开发沟通,需要我们了解游戏客户端的技术吗(不是必要,但最好去了解)2.团队的氛围如何(说游戏厂年轻人为主,氛围会开放、积极)
查看22道真题和解析
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务