Строка ввода для следующей функции: "()[]{}"
var isValid = function(s) {
if ((s.length == 2 && s[0] == s[1]) || s.trim().length == 0) {
return true;
}
if (s.length % 2 != 0) {
return false;
}
for (let i = s.length / 2, j = i - 1; i < s.length && j >= 0; i++, j--) {
console.log(s[j], s[i])
if (s[i].charCodeAt(0) !== s[j].charCodeAt(0)) {
console.log("false", s[j].length, s[i].length)
return false;
}
}
return true;
};
, когда она сравнивает [и], она входит в условие if внутри for для l oop и возвращает false.
Я попытался сравнить s[i] != s[j]
, но та же проблема.
description:
Задана строка, содержащая только символы '(', ')', '{', '}' , '[' и ']' определяют допустимость входной строки.
Входная строка действительна, если:
Open brackets must be closed by the same type of brackets.
Open brackets must be closed in the correct order.
Обратите внимание, что пустая строка также считается действительной.
Example 1:
Input: "()"
Output: true
Example 2:
Input: "()[]{}"
Output: true
Example 3:
Input: "(]"
Output: false
Example 4:
Input: "([)]"
Output: false