コードディレクトリisValid関数の作成(){}[]

11658 ワード

今日の質問


sは、複数の括弧からなるStringパラメータである.true/false、sが有効かどうかを返してください.
「(」、「)」、「[」、「]」、「{」、「}」の6種類があります.次の場合に有効です.かっこを開始するには、同じカッコで終了します.かっこの順序は正しいです.
s = "()"
return true
s = "()[]{}"
return true
s = "(]"
return false
s = "([)]"
return false
s = "{[]}"
return true
😢😢😢 今日は特に解決策が思いつかない問題です.
同僚たちのコードを消化し続けていれば、いつか私も解ける…!

同僚たちの素晴らしいコードを見てみましょう。🔥


1」」」」」
📌 この時間はwhile万週間かかりました解決策の1つはifゲートです.while文は、条件を満たす場合に1回しか実行されないため、for文と組み合わせて繰り返し、if文は条件を満たす限り繰り返し(loop)実行を継続する.
function isValid(s) {
  // (), {} ,[] 를 계속 제거하다보면 모든 짝이 맞아서 
 // 빈 문자열이 될 것이기 떄문에 while문을 통해 남지 않을때까지 제거를 반복한다. 
  while (s.includes("()") || s.includes("[]") || s.includes("{}")) {
      s = s.replace("()", "");
      s = s.replace("[]", "");
      s = s.replace("{}", "");
  }
  // 예를들어 "[({})]" {} 없애고 () 없애고 [] 없앰
  // "[ { ) }" 라면 그대로 남아있을 것.
   return s == '' ? true : false;
}

2朕カッコセットは{キー:Value}と定義され、解析的に!

function isValid(s) {
  // 빈 배열을 만들고!
  let isEmpty = [];
  // 키값과 밸류로 "짝을 지어" 객체를 만들어준다.
  const bracket = {
    ')': '(',
    '}': '{',
    ']': '['
  }
  // 여는 괄호들을 모아서 선언한 후
  let leftBracket = Object.values(bracket);
  //leftBracket = [ '(', '{', '[' ]
  for ( i in s ) {
    if (leftBracket.includes(s[i])) {
      isEmpty.push(s[i]);
    } else {
      // 오른쪽 닫는 괄호가 가장 안쪽의 왼쪽괄호랑 같다면
      // 짝이 지어지기 때문에 isEmpty에서 제거!
      // = 즉 s 안에 짝이 있다고 확인되므로 제거
      if (bracket[s[i]] === isEmpty[isEmpty.length-1]) {
        isEmpty.pop();
      } else {
        return false
      }
    }
  }

  return isEmpty[0] ? false : true;
}
💎 TODAY's NEW METHOD 💎
🧡 array. whileメソッド🧡 ちょっとお伺いします.
配列から最後の要素を削除し、その要素の関数を返します.
📘 本書として確認する
var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];
var popped = myFish.pop();
console.log(myFish); // ['angel', 'clown', 'mandarin' ]
console.log(popped); // 'sturgeon'
🧡 string. pop()メソッド🧡 ちょっとお伺いします.
📘 本書として確認する
const str = 'monkey is so cute'
str.replace('monkey','dog')
console.log (str)//'dog is so cute'