Code Kata #5
11254 ワード
質問する
sは、複数の括弧からなるStringパラメータである.true/false、sが有効かどうかを返してください.
「(」、「)」、「[」、「]」、「{」、「}」の6種類があります.次の場合に有効です.かっこを開始するには、同じカッコで終了します.かっこの順序は正しいです.
例:
一緒に問題を解いた同級生のおかげで、やっと問題を解いた.各かっこを数値に変換し、加算時に論理を0に書き出し、条件を追加してフィルタします.オブジェクトのキー値にアクセスする方法...私はもっとin文を勉強すべきだと思います.
s = "()[]{}"
return true
上記の条件は通らなかった.
sは、複数の括弧からなるStringパラメータである.true/false、sが有効かどうかを返してください.
「(」、「)」、「[」、「]」、「{」、「}」の6種類があります.次の場合に有効です.かっこを開始するには、同じカッコで終了します.かっこの順序は正しいです.
例:
s = "()"
return true
s = "()[]{}"
return true
s = "(]"
return false
s = "([)]"
return false
s = "{[]}"
return true
解決する一緒に問題を解いた同級生のおかげで、やっと問題を解いた.各かっこを数値に変換し、加算時に論理を0に書き出し、条件を追加してフィルタします.オブジェクトのキー値にアクセスする方法...私はもっとin文を勉強すべきだと思います.
function isValid(s) {
const center = (s.length / 2) - 1;
const obj = {
'(' : 1,
')' : -1,
'[' : 2,
']' : -2,
'{' : 3,
'}' : -3,
}
let answer = 0;
const first = s.split('')[0];
if(obj[first] < 0) {
return false;
} else if (Math.abs(obj[s[center]]) !== Math.abs(obj[s[center+1]])) {
return false;
} else {
for(let i in s) {
answer += obj[i];
}
}
return !answer;
}
console.log(isValid('([)]'));
次の論理は私が解いている方法です.sを配列に変換し、カッコの前の順序とカッコの後ろの順序が正しい場合はtrueを返します.s = "()[]{}"
return true
上記の条件は通らなかった.
function isValid(s) {
let arrS = s.split("");
let result = 0;
//console.log(arrS);
//console.log(arrS[0]);
for (let i = 0; i <= arrS.length; i++) {
if (arrS[i] === "(" && arrS[arrS.length - (i+1)] === ")" ) {
result = true;
} else {
result = false;
}
if (arrS[i] === "{" && arrS[arrS.length - (i+1)] === "}" ) {
result = true;
} else {
result = false;
}
if (arrS[i] === "[" && arrS[arrS.length - (i+1)] === "]" ) {
result = true;
} else {
result = false;
}
} return result;
}
Reference
この問題について(Code Kata #5), 我々は、より多くの情報をここで見つけました https://velog.io/@hereizhere/5-Code-Kata-Week-2-Day-3テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol