用友笔试错题集

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_41282726/article/details/100059880

1.

请实现一个简单的事件机制,能够实现对事件的触发和监听。

如:EventEmitter.on(); EventEmitter.trigger();

const camel_hump = str => {
    return str.replace(/(?:\-|\_)([a-z])/g, (input, match) => {
        return match.toUpperCase();
    });
}

2.

使用MYSQL进行模糊查询 LIKE ‘_YOU%’,下面哪个是正确结果?

YYOUYO     

_:表示任意单个字符           %:表示任意个或多个字符

3.

请求出第20个丑数。(最小因子只有2、3、5的数,称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7,习惯上我们把1当做是第一个丑数);

 输入:getUglyNumber(20)

输出:36

 思路:
 1.按顺序将丑数保存在数组中,然后求下一个丑数;
 2.下一个丑数是由数组中某个丑数A * 2,B * 3,C * 5中的最小值得来的。
 3.按照题目规定,第一个丑数是1,存入数组中;
 4.第二个丑数为1*2,1*3,1*5三个中的最小值;
 5.第三个丑数为2*2,1*3,1*5三个中的最小值,依次类推,求出第N个数组。
       
const getUglyNumber = n => {
    if (n >= 1) {
        const temp = [1],
            result = [1];
        let i = 1,
            index2 = 0,
            index3 = 0,
            index5 = 0;
        while (result.length < n) {
            temp[i] = Math.min(temp[index2] * 2, temp[index3] * 3, temp[index5] * 5);
            if (temp[i] == temp[index2] * 2) {
                index2++;
            } else if (temp[i] == temp[index3] * 3) {
                index3++;
            } else if (temp[i] == temp[index5] * 5) {
                index5++;
            }
            if (result.indexOf(temp[i]) == -1) {
                result.push(temp[i]);
            }
            i++;
        }
        return result[n - 1];
    }
}

4.

请判断一个字符串出现次数最多的字符及出现次数?

输入:const str = 'asddfgdfwwqeweqwezczxcsdfgdgd';

输出:’d’, 出现6次

const str = 'asddfgdfwwqeweqwezczxcsdfgdgd';
let map = {};
let maxTimes = 0,
    target;
for (let i = 0; i < str.length;i++) {
    if (map[str[i]] !== undefined) {
        map[str[i]]++;
    } else {
        map[str[i]] = 1;
    }
    if (map[str[i]] > maxTimes) {
        maxTimes = map[str[i]];
        target = str[i];
    }
}
map = null;

5.

求字符串 'hello world' 对应的ASCII码数组,并按照编码大小逆序。

输入:'hello world’

输出:[119, 114, 111, 111, 108, 108, 108, 104, 101, 100, 32]

var str = 'hello world';
var arr=[];
for(var i=0;i<str.length;i++){
  arr.push(str[i].charCodeAt());
}
arr.sort((a,b)=>a-b).reverse();
console.log(arr);

十进制ASCII码转换成字符:String.fromCharCode(num1[, ...[, numN]])

String.fromCodePoint(65) // A
String.fromCodePoint(90) // Z
String.fromCodePoint(97) // a
String.fromCodePoint(122) // z

字符转换成十进制ASCII码:'a'.charCodeAt()

'A'.charCodeAt() // 65
'a'.charCodeAt() // 97
'Z'.charCodeAt() // 90
'z'.charCodeAt() // 122

6.调用函数无返回值,要求改变原有数组

输入描述: ["t","h","e"," ","s","k","y"," ","i","s"," ","b","l","u","e"]

 输出描述:["b","l","u","e"," ","i","s"," ","s","k","y"," ","t","h","e"]

var reverseWords = function(s) {
  var arr=[];
   for(var i=s.length-1;i>=0;i--){
     if(s[i]===' ') arr= arr.concat(s.splice(i,s.length-1));
   }
   arr.shift();
   arr.push(" ");
   for(var i=arr.length-1;i>=0;i--){
     s.unshift(arr[i]);
   }
   console.log(s);
   console.log(arr);
};
// JSON.stringify
var s = ["t","h","e"," ","s","k","y"," ","i","s"," ","b","l","u","e"];
// s = JSON.parse(s);
reverseWords(s);
var quotedAndCommaSeparated = '["' + s.join('","') + '"]';
console.log(quotedAndCommaSeparated);

考试做不出来,一结束就做出来,还是心态问题加练习少啊!!!!感觉要凉。。。。。。

猜你喜欢

转载自blog.csdn.net/weixin_41282726/article/details/100059880