首页 > 其他 > 详细

判断字符串是否合法(1)

时间:2021-05-14 10:01:17      阅读:14      评论:0      收藏:0      [点我收藏+]

给定模拟字符串‘[()]{{}}‘,给定字符串只含有括号,要求括号闭合。

不合法字符串形如[(]){}{[](){(})[]}{}{[]

基本思路:

  • 给定字符串的字符数一定为偶数

  • 遇到右半边括号时,它左侧相邻的必定是同种类型的左半边括号

let arr = []

function isLegal(str) {
    let strArr = str.split(‘‘)
    if (str.length % 2 !== 0) {
        return ‘不合法‘
    }
    strArr.forEach(item => {
        let len = arr.length - 1
        switch (item) {
            case ‘{‘:
                arr.push(‘{‘)
                break;
            case ‘[‘:
                arr.push(‘[‘)
                break;
            case ‘(‘:
                arr.push(‘(‘)
                break;
            case ‘}‘:
                if (arr[len] === ‘{‘) {
                    arr.pop()
                }
                break;
            case ‘]‘:
                if (arr[len] === ‘[‘) {
                    arr.pop()
                }
                break;
            case ‘)‘:
                if (arr[len] === ‘(‘) {
                    arr.pop()
                }
                break;
        }
    });
    return arr.length === 0 ? ‘合法‘ : ‘不合法‘
}
console.log(isLegal(‘{(})[]‘)); //不合法

判断字符串是否合法(1)

原文:https://www.cnblogs.com/jincanyu/p/14767022.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!