有赞前端面经-一面

做题
var isValid = function(s) {
// code here
if(s.length <2) return false;

let stack = [];
let obj = {')':'(', ']':'[', '}':'{'};
stack.push(s[0]);

for(let i=1; i<s.length; i++) {
    if(stack.length == 0) {
        stack.push(s[i]);
        continue;
    }

    if(obj[s[i]] === stack[stack.length-1]) {
        stack.pop();
    }
    else{
        stack.push(s[i])
    }
}
return stack.length === 0;

};

console.log('======有效的括号========');
console.log('should -> ', true);
console.log('result -> ', isValid('()'));
console.log('should -> ', true);
console.log('result -> ', isValid('()[]{}'));
console.log('should -> ', false);
console.log('result -> ', isValid('()[}'));
console.log('should -> ', false);
console.log('result -> ', isValid('(]'));
console.log('should -> ', true);
console.log('result -> ', isValid('([])'));

/**

  • 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和

  • tips: 你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。

  • 示例输入: '197880986', '5112281222'

  • 示例输出: '5310162208'

  • /
    var addStrings = function (num1, num2) {
    // code here
    let i = num1.length;
    let j = num2.length;

    if(i > j){

       let arr = new Array(i - j).fill(0).join('');
       num2 = arr + num2;

    }
    else if(i < j) {

       let arr = new Array(j - i).fill(0).join('');
       num1 = arr + num1;

    }

let res = [];

let last = 0;

while(i >= 0) {
    let curSum = Number(num1[i]) + Number(num2[i]) + last;
    if(curSum < 10) {
        res.unshift(curSum);
        last = 0;
    }
    else{
        res.unshift(curSum - 10);
        last = 1;
    }
    i--;
}
return res.join('');

};
console.log('result --> ' + addStrings('197880986', '5112281222'));
console.log('want ----> ' + '5310162208');
console.log('[equal] -> ' + (addStrings('197880986', '5112281222') === '5310162208'));

#有赞##面经#
全部评论

相关推荐

点赞 5 评论
分享
牛客网
牛客企业服务