回文数 & {}[]() 符号判断

  • 回文数判断
function isParmse(str) {
    if(typeof str !== 'string') return false;
    let i = 0,j = str.length - 1;
    while(i < j) {
        if (str.charAt(i) !== str.charAt(j)) return false;
        i++;
        j--; 
    }
    return true;
}
  • 数值循环中重复数值长度

   解释:  例,abcabc 中找出出现的abc的长度 为 3

function strLen(str) {
    let arr = [],max = 0;
    for(let i = 0; i<str.length-1; i++) {
        let index = arr.indexOf(str[i]);
        if(index !== -1) {
            arr.splice(index,1);
        }
        arr.push(str.charAt(i));
        max = Math.max(arr.length,max);
    }
    return max;
}
  • {}()[]闭合符号的判断

   解释: 例,([{}]) true, ([)] false

function isValid(str) {
    let map = {
        '{': '}',
        '(': ')',
        '[': ']'
    }
    let stack = [];
    for(let i=0; i<str.length; i++) {
        if(map[str[i]]) {
            stack.push(str[i]);
        } else if (str[i] !== map[stack.pop()]) {
            return false;
        }
    }
    return stack.length === 0;

}
原文地址:https://www.cnblogs.com/strivegys/p/12849421.html