![](https://img-blog.csdnimg.cn/20210828191216908.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
机试题
机试练习
兰兰的风。。。
学习总结记录(公众号:元气满满的大咸鱼。欢迎关注。)
展开
-
day10:求字符串之间的最长子字符串
eg:var s1 = 'abacda'; //4(5-0-1)var s2 = 'cc'; //0(1-0-1)var s3 = 'dskj' //-1实现:function maxLengthSelf(s) { let max = -1; for (let i of s) { if (s.lastIndexOf(i) - s.indexOf(i) - 1 > -1) { max = s.lastIndexOf(i) - s.ind原创 2021-10-14 19:32:19 · 216 阅读 · 1 评论 -
day9:保留两位小数,且遇千分位加逗号;返回字符串中第一个不重复字符的索引
1.给定数字324544000.032,输出324,544,000.03方法一:对整数部分利用Number(324544000).toLocaleString(),可以转化为324,544,000var num = 324544000.032;let arr = num.toString().split('.')let str2 = arr[1].slice(0, 2)let str1 = Number(arr[0]).toLocaleString()let re = str1 + '.' +原创 2021-09-23 13:03:14 · 112 阅读 · 0 评论 -
每日两题记录day8:返回字符串中出现次数最多的字符 和 连续数字连接问题
1.输入一个字符串,返回字符串中出现次数最多的字符let s = 'absddduuutfb'let obj = {} //统计字符使用for (let item of s) { if (obj[item]) { obj[item]++ } else { obj[item] = 1 }}let keyArr = Object.keys(obj).sort((a, b) => { return obj[b] - obj[原创 2021-08-30 21:08:49 · 186 阅读 · 0 评论 -
时间戳与特定格式时间转换
1 获取时间戳1.获取系统当前时间的时间戳(单位:毫秒)方法1:var timestamp1= +new Date();方法2:var timestamp2 = new Date().valueOf();方法3:var timestamp3 = new Date().getTime();2.获取特定时间的时间戳var timestamp = new Date(‘2021-08-22 20:32:08’).getTime();2 将时间戳转为特定格式的日期如:YYYY-MM-DD HH:原创 2021-08-22 21:02:17 · 762 阅读 · 0 评论 -
js中一些特殊的函数(!!!!!!笔试编程题使用)
let s=readline();//s此时是一个字符串1.num.toFixed(count)Number(s).toFixed(2)//使输入值保留两位小数2.eval(s)求表达式s的值3.Number(s).toString(2)转换为2进制原创 2021-08-19 22:02:51 · 115 阅读 · 0 评论 -
js实现华为机试02
11.数字颠倒var str=readline();var arr=str.split('').reverse();var s='';arr.forEach(value=>s+=value);console.log(s);12.字符串反转let s=readline();let result='';for(let i=s.length-1;i>=0;i--){ result+=s[i]; }print(result);13.句子逆序var s=readline原创 2021-08-19 21:59:47 · 218 阅读 · 0 评论 -
每日两题记录day7---HJ51 输出单向链表中倒数第k个结点 与 HJ68 成绩排序
HJ51 输出单向链表中倒数第k个结点while(n=readline(),s=readline(),k=readline()){ let len=Number(n); let arr=s.trim().split(' ') let key=Number(k); if(key>0){ print(arr[len-key]); } if(key===0){ print(0); }}倒数第k个节点:也就是正原创 2021-08-17 10:53:34 · 132 阅读 · 0 评论 -
每日两题记录day6---公共子串计算
切分字符串的方法:s.slice(start, end)与s.substring(start, end)s.substr(start,length)1 求两个串的最长公共子串及长度 let s1=readline(); let s2=readline(); var s='';//最长的公共子串 if(s1.length > s2.length){ var t=s1; s1=s2; s2=t; }原创 2021-08-12 12:48:35 · 70 阅读 · 0 评论 -
每日两题记录day5--- HJ80 整型数组合并 和 HJ81 字符串字符匹配
HJ80 整型数组合并题目标题:将两个整型数组按照升序合并,并且过滤掉重复数组元素。输出时相邻两数之间没有空格。while(n1=readline(),s1=readline(),n2=readline(),s2=readline()){ let arr1=s1.trim().split(' '); let arr2=s2.trim().split(' '); let arr=Array.from(new Set(arr1.concat(arr2))); arr.s原创 2021-08-11 21:42:31 · 308 阅读 · 0 评论 -
js实现括号匹配记录
let str = '[{{(}}]';let arr = [];let flag = 1;//0:不匹配 1:匹配if (str.length % 2 !== 0) {//长度为奇数 flag = 0;}else {//长度为偶数 for (let item of str) { switch (item) { case '[': arr.push(item); break;原创 2021-08-11 10:32:29 · 326 阅读 · 0 评论 -
每日两题记录day4---HJ45 名字的漂亮度与HJ48 从单向链表中删除指定值的节点
HJ45 名字的漂亮度let n=readline();while(s=readline()){ let obj={}; for(let item of s){ if(Object.keys(obj).indexOf(item)===-1){ obj[item]=0;//如果没在对象obj的key组成的数组里找到元素item } } //为字符串中的字符进行统计,为obj={'a':1,...} .原创 2021-08-09 00:05:32 · 70 阅读 · 2 评论 -
每日两题记录day3---HJ58 输入n个整数,输出其中最小的k个与HJ59 找出字符串中第一个只出现一次的字符
HJ58 输入n个整数,输出其中最小的k个while(num=readline(),r=readline()){ let numArr=num.trim().split(' '); let rArr=r.trim().split(' '); rArr.sort(function(a,b){ return a-b; }); let s=''; for(let i=0;i<numArr[1];i++){ s+=rArr.原创 2021-08-07 11:54:01 · 135 阅读 · 0 评论 -
每日两题记录day2---HJ97 记负均正与HJ105 记负均正II
HJ97 记负均正while(n=readline(),s=readline()){ let arr=s.split(' '); let count=0;//正数个数 let neg=0;//负数个数 let sum=0; arr.forEach(function(el){ if(Number(el)>0){ sum+=Number(el); count++; } if(Number(el)<0.原创 2021-08-06 23:35:18 · 145 阅读 · 0 评论 -
每日两题记录day1---HJ85 最长回文子串与HJ90 合法IP
HJ85 最长回文子串可参考学习的内容:字符串的slice与substring、数组的slice与splice判断一个串是否是对称串let s=readline();let subArr=[];for (let i = 0; i < s.length; i++) { for (let j = i + 1; j <= s.length; j++) { let temp = s.slice(i, j);//求出子串 if(judge(temp).原创 2021-08-05 23:21:25 · 173 阅读 · 0 评论 -
HJ108 求最小公倍数
最小公倍数 = 两数相乘/最大公约数while(n=readline()){ var str=n.split(' ') var a=str[0] var b=str[1] var c=a%b while(c!==0){ a=b b=c c=a%b } console.log(str[0]*str[1]/b)}原创 2021-07-28 21:16:17 · 81 阅读 · 0 评论 -
正则表达式的使用(笔试题中经常可用来处理字符串)
【HJ84】 统计大写字母个数while (str = readline()) { //[^A-Z]/g表示对整个字符串str进行匹配,匹配除A-Z外的字符,找到则用空字符配 let s = str.replace(/[^A-Z]/g, '') console.log(s.length)}【HJ96】 表示数字while(line =readline()){ var out = line.replace(/(\d+)/g,'*$1*'); console原创 2021-07-27 20:19:30 · 190 阅读 · 0 评论 -
HJ94 记票统计(!!!!!看它)
输入描述:输入候选人的人数n,第二行输入n个候选人的名字(均为大写字母的字符串),第三行输入投票人的人数,第四行输入投票。输出描述:按照输入的顺序,每行输出候选人的名字和得票数量,最后一行输出不合法的票数。![在这里插入图片描述](https://img-blog.csdnimg.cn/5753fa6e0a1e45069dcb25d4167fb264.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_原创 2021-07-26 22:24:23 · 359 阅读 · 0 评论 -
【HJ86】 求最大连续bit数
题目的大概意思就是:把输入的一个十进制数字转为二进制,然后找出连续的1的最大长度。我写的:while(s=readline()){ let str=Number(s).toString(2); let start=str.replace(/0+/g,',');//在str中匹配若干个0,用‘,’替代 let arr=start.split(',');//这是一个每一项含有1的数组,只是每一项1的个数不同 let lengthArr=[];//统计个数 arr.f原创 2021-07-17 17:21:03 · 130 阅读 · 0 评论 -
【HJ84】 统计大写字母个数
方法1:利用正则,强烈推荐用正则去处理字符串while (str = readline()) { //[^A-Z]/g表示对整个字符串str进行匹配,匹配除A-Z外的字符,找到则用空字符配 let s = str.replace(/[^A-Z]/g, '') console.log(s.length)}方法2:利用s.charCodeAt()方法,将字符转为ASCII码,进行判断while(str=readline()){ let count=0; for原创 2021-07-17 16:24:47 · 391 阅读 · 0 评论 -
使用js做华为机试题输入输出总结
1.输入(1)输入一行,进行处理,得到输出;输入用例有多组while(line = readline()){ //代码}(2)输入两行,进行处理,得到输出;输入用例有多组while(str1= readline(),str2= readline()){ //代码}2.输出console.log()或者print()...原创 2021-03-09 15:34:37 · 2403 阅读 · 1 评论 -
【华为机试题】整数与IP地址间的转换和蛇形矩阵
1 整数与IP地址间的转换function iptoNumber(ip){ let A=ip.split('.').map(v=>Number(v)); let num=''; for(let value of A){ let k=value.toString(2);//将每个数字转为二进制串 if(k.length<8){ for(let i=k.length;i<8;i++){原创 2021-03-09 15:27:58 · 119 阅读 · 0 评论 -
js判断一个串是否是对称串
方法一:var target1 = 'ahhaa';console.log(panduan(target1));//falsevar target2 = 'ahha';console.log(panduan(target2));//truefunction panduan(s) { let flag = true; for (let i = 0; i < parseInt(s.length / 2); i++) { if (s.charAt(i) != s原创 2021-03-08 15:06:43 · 1106 阅读 · 0 评论 -
【华为机试题】字符串加解密与字符串合并处理
要求:1、对输入的字符串进行加解密,并输出。2、加密方法为:当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B;字母Z时则替换为a;当内容是数字时则把该数字加1,如0替换1,1替换2,9替换0;其他字符不做变化。3、解密方法为加密的逆过程。js实现:const str1 = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';const str2 = 'BCDEFGH原创 2021-03-07 16:57:03 · 613 阅读 · 0 评论 -
js实现字符串排序
规则:规则 1 :英文字母从 A 到 Z 排列,不区分大小写。如,输入: Type 输出: epTy规则 2 :同一个英文字母的大小写同时存在时,按照输入顺序排列。如,输入: BabA 输出: aABb规则 3 :非英文字母的其它字符保持原来的位置。如,输入: By?e 输出: Be?y注意有多组测试数据,即输入有多行,每一行单独处理(换行符隔开的表示不同行)while(line=readline()){ //字符串切分为数组 let s=line.split("");原创 2021-03-06 11:58:02 · 12393 阅读 · 0 评论 -
js实现将十进制数字为二进制
var num = 8;var arr = [];//count0,count1分别表示转为二进制的0,1个数var count0 = 0;var count1 = 0;while (Math.floor(num / 2) > 0) { arr.push(num % 2); num = Math.floor(num / 2);}arr.push(1); //转为二进制数字的最高位一定是1console.log(arr); //[0, 0, 0, 1]//newA原创 2021-02-23 19:46:31 · 1444 阅读 · 0 评论 -
js实现华为机试01
1字符串最后一个单词的长度2计算某字符在字符串出现的次数3明明的随机数4字符串分隔5进制转换6质数因子7取近似值8合并表记录9字符个数统计10提取不重复的整数字符串最后一个单词的长度var str=readline();var strArr=str.split(' ');var endLen=strArr[strArr.length-1].length;console.log(endLen);计算某字符在字符串出现的次数var str=readline();var sl=原创 2021-02-22 20:43:32 · 922 阅读 · 0 评论 -
质数相关的问题
判断一个数是否为质数找一个区间范围的所有质数找出一个数的质数因子A.判断一个数是否为质数function isPrime(num) {/* 一种方法是用2~<num之间的数去整除num,如果可以整除,则不是质数。 这里找n是为了减少无效循环,提高效率。*/ //找出不大于num平方根的最大整数 let n = Math.floor(Math.sqrt(num)); // console.log(n); let flag = true; //是质数 .原创 2021-02-22 17:46:35 · 144 阅读 · 0 评论