開カッコと閉カッコからなる文字列が与えられます。 開カッコと閉カッコがきちんと対応しているかを判定してください。 カッコが対応しているとは以下を満たすことを言います。 - 任意の開カッコに対して、*それより後に*ペアになる閉カッコが存在すること - ペアになっていないカッコが存在しないこと ``` # 入力と出力の例 () => True )( => False # 閉カッコが先に来てしまっている ( => False ) => False ()() => True (()) => True ()) => False (()(())) => True ``` ``` () => True ()() => True (()) => True (()(())) => True )( => False ( => False ) => False ()) => False ())( => False ``` ```:typescript function checkBraces(input) { return false } ``` ```: ruby def checkBraces(input) return false if input[0] == ")" counts_open = input.chars.count("(") counts_close = input.chars.count(")") return false unless counts_open == counts_close input.match(/()/) #())( #)( end ``` ▼後日追記(橋本) ```typescript function checkBraces(input: string): boolean { let openCount = 0; let closeCount = 0; for (var item of input) { switch (item) { case "(": openCount++; break; case ")": closeCount++; break; } if (openCount < closeCount) { break; } } return openCount == closeCount } さすがです!!!後日トライしていただきありがとうございます👏✨ //console.log(`() => ${checkBraces("()")}`) //console.log(`)( => ${checkBraces(")(")}`) //console.log(`( => ${checkBraces("(")}`) //console.log(`) => ${checkBraces(")")}`) //console.log(`()() => ${checkBraces("()()")}`) //console.log(`(()) => ${checkBraces("(())")}`) //console.log(`()) => ${checkBraces("())")}`) //console.log(`(()(())) => ${checkBraces("(()(()))")}`) ``` ```ruby def checkBraces(input) opnen_count = 0 close_count = 0 input.each_char do |char| case char when "(" opnen_count += 1 when ")" close_count += 1 end break if opnen_count < close_count end opnen_count == close_count end ```
×
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