为什么我的尾随 space 字符出现字符串反转错误?
Why am I getting string reversal wrong with a trailing space character?
我不明白为什么会有 space,这让我误会了。
下面是我写的解决方案的代码
为什么即使在反转我的字符串后,最后的字符串末尾仍有空白 space 字符。
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--){
我不明白为什么会有 space,这让我误会了。
下面是我写的解决方案的代码
为什么即使在反转我的字符串后,最后的字符串末尾仍有空白 space 字符。
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--){