为什么我的尾随 space 字符出现字符串反转错误?

Why am I getting string reversal wrong with a trailing space character?

我不明白为什么会有 space,这让我误会了。

下面是我写的解决方案的代码

为什么即使在反转我的字符串后,最后的字符串末尾仍有空白 space 字符。

Question

class Solution {
public:
    string minRemoveToMakeValid(string s) {
        string str = "";
        int n = s.length();
        int open=0;
        for(int i=0;i<n;i++){
            if(s[i]=='('){
                open++;
            }else if(s[i]==')'){
                open--;
                if(open<0){
                    open=0;
                    continue;
                }
               
            }
            str+=s[i];
        }
        open=0;
        string s2="";
        for(int i=n-1;i>=0;i--){
            if(str[i]==')'){
                open++;
            }else if(str[i]=='('){
                open--;
                if(open<0){
                    open=0;
                    continue;
                }
                
            }
            s2=s2+str[i];
        }
        
       reverse(s2.begin(),s2.end());

        return s2;
    }
     
};

Leetcode Submission getting wrong

str 的长度可能小于 s 之一,但您在 str 内迭代时使用了 s 的长度。您必须使用正确的长度。

        string s2="";
        n = str.length(); // add this
        for(int i=n-1;i>=0;i--){