CodeKata 05.
質問する
sは、複数の括弧からなるStringパラメータである.
true/false、sが有効かどうかを返してください.
「(」、「)」、「[」、「]」、「{」、「}」の6種類があります.
次の場合に有効です.
かっこを開始するには、同じカッコで終了します.
かっこの順序は正しいです.
例:
3.感じ
ただ、、、、なぜ挑戦の意味を思い付かなかったのか、、、相手を使うのか.
sは、複数の括弧からなるStringパラメータである.
true/false、sが有効かどうかを返してください.
「(」、「)」、「[」、「]」、「{」、「}」の6種類があります.
次の場合に有効です.
かっこを開始するには、同じカッコで終了します.
かっこの順序は正しいです.
例:
s = "()"
return true
s = "()[]{}"
return true
s = "(]"
return false
s = "([)]"
return false
s = "{[]}"
return true
1.私が提出した答え:いつも間違っているfunction isValid(s) {
const shape =['(', ')', '[', ']', '{', '}'];
const a = shape[0]+ shape[1];
const b = shape[2] + shape[3];
const c = shape[4] + shape[5];
for( let i= 0; i < shape.length; i++) {
for (let j = 0; j < shape.length; j++) {
const result = shape[i] + shape[j];
if (result === a || b|| c){
return true;
} else {
return false;
}
}
}
}
console.log(isValid('[}]'));
2.見つけた答えfunction isValid(s) {
ss = s.split('')
obj = {
"(":")",
"[":"]",
"{":"}"
}
for (let i = ss.length-1 ; i>-1 ; i--){
if ((ss[0]===")" || ss[0]==="]"||ss[ss.length-1]==="}")||(ss[ss.length-1]==="(" || ss[ss.length-1]==="["||ss[ss.length-1]==="{"))return false;
if (ss[i]==="(" || ss[i]==="["||ss[i]==="{"){
if(ss[i+1]===obj[ss[i]]){
let removed = ss.splice(i,2);
isValid(ss.join(""));
}else{
return false;
}
} if(ss.length===0)return true;
}
}
isValid("(())}") ==> false
https://github.com/rumbarum/CodeKata/blob/master/Week2_Day3.md 3.感じ
ただ、、、、なぜ挑戦の意味を思い付かなかったのか、、、相手を使うのか.
Reference
この問題について(CodeKata 05.), 我々は、より多くの情報をここで見つけました https://velog.io/@seod0209/CodeKata-05テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol