括弧の各ペア間の部分文字列を逆にする(C ++は、括弧の各ペア間の部分文字列を逆にします)

問題解決のアイデア:

(1)スタックを使用してプレフィックス文字列を保存し、右括弧が見つかったときに文字列を回転させ、同時に最も近いプレフィックス文字列を追加します

class Solution {
public:
    string reverseParentheses(string s) {
        stack<string> st;
        int i=0;
        string str="";
        while(i<s.length()) {
            if(s[i]=='(') {
                st.push(str);
                str="";
            } else if(s[i]==')') {
                reverse(str.begin(),str.end());
                str=st.top()+str;
                st.pop();
            } else str+=s[i];
            i++;
        }
        return str;
    }
};

 

おすすめ

転載: blog.csdn.net/coolsunxu/article/details/114655594