3.0 KiB
3.0 KiB
id, title, challengeType, forumTopicId, dashedName
id | title | challengeType | forumTopicId | dashedName |
---|---|---|---|---|
594dc6c729e5700999302b45 | 対の括弧 | 5 | 302230 | balanced-brackets |
--description--
生成された括弧が対になっているかどうかを確認します。括弧が開き括弧と閉じ括弧の順番で対になっているかどうか、誤った入れ子になっていないかどうかを確認します。
例:
入力 | 出力 |
---|---|
[] |
真 |
][ |
偽 |
[][] |
真 |
][] |
偽 |
[]][[] |
偽 |
[[[[]]]] |
真 |
--hints--
isBalanced
という関数です。
assert(typeof isBalanced === 'function');
isBalanced("[]")
は真を返します。
assert(isBalanced(testCases[0]));
isBalanced("]][[[][][][]][")
は偽を返します。
assert(!isBalanced(testCases[1]));
isBalanced("[][[[[][][[[]]]]]]")
は真を返します。
assert(isBalanced(testCases[2]));
isBalanced("][")
は偽を返します。
assert(!isBalanced(testCases[3]));
isBalanced("[[[]]]][[]")
は偽を返します。
assert(!isBalanced(testCases[4]));
isBalanced("][[]")
は偽を返します。
assert(!isBalanced(testCases[5]));
isBalanced("][[][]][[[]]")
は偽を返します。
assert(!isBalanced(testCases[6]));
isBalanced("[[][]]][")
は偽を返します。
assert(!isBalanced(testCases[7]));
isBalanced("[[[]]][[]]]][][[")
は偽を返します。
assert(!isBalanced(testCases[8]));
isBalanced("[]][[]]][[[[][]]")
は偽を返します。
assert(!isBalanced(testCases[9]));
isBalanced("][]][[][")
は偽を返します。
assert(!isBalanced(testCases[10]));
isBalanced("[[]][[][]]")
は真を返します。
assert(isBalanced(testCases[11]));
isBalanced("[[]]")
は真を返します。
assert(isBalanced(testCases[12]));
isBalanced("]][]][[]][[[")
は偽を返します。
assert(!isBalanced(testCases[13]));
isBalanced("][]][][[")
は偽を返します。
assert(!isBalanced(testCases[14]));
isBalanced("][][")
は偽を返します。
assert(!isBalanced(testCases[15]));
isBalanced("[]]]")
は偽を返します。
assert(!isBalanced(testCases[16]));
isBalanced("")
は真を返します。
assert(isBalanced(testCases[17]));
--seed--
--after-user-code--
const testCases = [
'[]',
']][[[][][][]][',
'[][[[[][][[[]]]]]]',
'][',
'[[[]]]][[]',
'][[]',
'][[][]][[[]]',
'[[][]]][',
'[[[]]][[]]]][][[',
'[]][[]]][[[[][]]',
'][]][[][',
'[[]][[][]]',
'[[]]',
']][]][[]][[[',
'][]][][[',
'][][',
'[]]]',
''
];
--seed-contents--
function isBalanced(str) {
return true;
}
--solutions--
function isBalanced(str) {
if (str === '') return true;
let a = str;
let b;
do {
b = a;
a = a.replace(/\[\]/g, '');
} while (a !== b);
return !a;
}