判断字符串是否合法
Posted journey-of-dreams
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了判断字符串是否合法相关的知识,希望对你有一定的参考价值。
给定模拟字符串\'[()]{{}}\'
,给定字符串只含有括号,要求括号闭合。
不合法字符串形如[(]){}
,{[]()
,{(})[]
,}{}{[]
基本思路:
-
给定字符串的字符数一定为偶数
-
遇到右半边括号时,它左侧相邻的必定是同种类型的左半边括号
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(\'{(})[]\')); //不合法
以上是关于判断字符串是否合法的主要内容,如果未能解决你的问题,请参考以下文章