右かっこ


🔒 質問する



💭 構想


プロであれば、スタックの問題を見ると思い出すはずです.
手動エンコードが必要な問題
実際のIDEのコンパイラとデバッガでカッコをチェックする方法と同じです.
{(カッコを開いたらスタックに入れ、残りをスタックから削除します).
カッコが開いていない場合、または閉じすぎている場合(スタックが空の場合)->false
スタックが最終状態で空の場合、すべてのスタックがペアリングされるためtrue

🔑 に答える

#include <string>
#include <stack>
using namespace std;

bool solution(string s)
{
    stack<char> bracketStack;

    for (char bracket : s) {
        if (bracket == '(') bracketStack.push(bracket);
        else if (bracketStack.empty()) return false;
        else bracketStack.pop();
    }

    return bracketStack.empty() ? true : false;
}