括弧が均衡しているかどうかをチェックするサンプルプログラムを書いています。私はそれを最適化しようとした、これは私が思い付くことができる最高です。しかし私はこれをさらに改善できるかどうか探しています。私はこれがstackoverflowに置く有効な質問かどうかもわかりません。任意の考えと提案括弧がバランスしているかどうかを確認するプログラムを改善するにはどうすればよいですか?
func checkBalancedParenthesis(parenthesis: String) -> (Bool,String) {
var stack = Stack<Character>()
for character in parenthesis.characters {
guard let check = try? checkValidPattern(a: ("!",character)) else {
return (false,"Pattern is not valid")
}
if let elem = stack.top, try! checkValidPattern(a: (elem,character)) {
stack.pop()
}
else {
stack.push(item: character)
}
}
return (stack.isEmpty,stack.isEmpty ? "Balanced": "Un-Balanced")
}
func checkValidPattern(a: (Character,Character)) throws -> Bool {
let validList: [Character] = ["(",")","[","]","}","{","<",">"]
switch a
{
case ("(",")"):
return true
case ("[","]"):
return true
case ("{","}"):
return true
case ("<",">"):
return true
case let (_,char) where validList.contains(char) == true:
return false
default:
throw InvalidPattern.chracterNotValid
}
}
「かっこがバランスしている場合」とはどういう意味ですか?括弧は単数名詞です。 –
あなたのプログラムが意図したとおりに動作し、レビューと改善が必要な場合は、codereview.stackexchange.comが適切なサイトです。 –
また、https://codereview.stackexchange.com/questions/136514/swift-hackerrank-balanced-bracketsを比較してください。 –