优路科技笔面试题
笔试题:
1.独一无二的次数:
给你一个数组,计算每个数出现的次数,如果每个数组返回的数都是独一无二的就返回 true 相反则返回的 flase
var arr = [1,2,3,4,5,6];function count(arr) {var result = [];var obj = {};arr.forEach(function (item) {if (!obj[item]) {obj[item] = 1;} else {obj[item] ++;}});for (var prop in obj) {if (obj.hasOwnProperty(prop)) {result.push(obj[prop]);}}return result.length === arr.length;}console.log(count(arr))
2.字符串压缩
给你个字符串,利用反复出的字符串的 例如 aaabbbdddddfff 转化为a3b3d4f3
假设只包含大小写字母
function zipStr(str) {var reg = /(\w)(\1*)/gconsole.log(str.replace(reg, function ($, $1, $2) {console.log($1, $2);return $1 + ($2.length + 1)}))}
3.删除给定值val
给你一个链表 1>2>3>6>4>5>6 删除 val=6 得到 1>2>3>4>5>
function deleteNode(node, targetVal) {var p = node;var result = node;if (p.val === targetVal && p.next) {result = p.next;} else if(p.val === targetVal) {result = null;}if (p.next.val === targetVal && p.next.next) {p.next = p.next.next;} else if (p.next.val === targetVal) {p.next = null;}while(p.next.next) {if (p.next.val === targetVal) {p.next = p.next.next;}p = p.next;}if (p.next.val === targetVal) {p.next = p.next.next ? p.next.next : null;}return result;}
