開カッコと閉カッコからなる文字列が与えられます。 開カッコと閉カッコがきちんと対応しているかを判定してください。 カッコが対応しているとは以下を満たすことを言います。 - 任意の開カッコに対して、*それより後に*ペアになる閉カッコが存在すること - ペアになっていないカッコが存在しないこと ``` # 入力と出力の例 () => True )( => False # 閉カッコが先に来てしまっている ( => False ) => False ()() => True (()) => True ()) => False (()(())) => True (()))(=> False (()))((())=> False ``` 言語はなんでも大丈夫です! inputの例: "(()(()))" ```typescript= const handleIsValidChar =(input: string):boolean => { const stack:string[] = [] const pairs: {[key:string]:string} = { '(':')', } for(let i =0; i<input.length; i++){ const char = input[i] // ↓charが始まりカッコの場合 if(pairs[char]){ stack.push(char) // ↓charが終わりカッコの場合 }else if(char === ')'){ // ↓始まりカッコがないのに終わりカッコが来た場合 if(stack.length === 0) return false // ↓配列から最後の要素を取り除き、その要素を返す const lastOpen = stack.pop() // ↓最後に追加した始まりカッコと終わりカッコが対になっていない場合 if(pairs[lastOpen] !== char)return false } } // ↓始まりカッコと終わりカッコの数が一致しているか return stack.length === 0 } ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up