Проверьте наличие входов, подобных [])), []) и т. Д., Для которых она дает ошибку времени выполнения, но для других входных данных, таких как [[]], она работает нормально.Сбалансированная скобка с ошибкой времени выполнения
class Solution {
public:
bool isValid(string s)
{
stack<char> st;
int i=0;
char top;
if(s[0] == ']' || s[0] == ')' || s[0] == '}')
return 0;
while(s[i]!='\0')
{
if(s[i] == '[' || s[i] == '(' || s[i] == '{')
{
st.push(s[i]);
i++;
continue;
}
else if(st.top() == '(' && s[i] == ')')
{
st.pop();
i++;
continue;
}
else if(st.top() == '{' && s[i] == '}')
{
st.pop();
i++;
continue;
}
else if(st.top() == '[' && s[i] == ']')
{
st.pop();
i++;
continue;
}
else
{
st.push(s[i]);
i++;
continue;
}
}
if(st.empty())
return 1;
else
return 0;
}
};
пытается перефразируйте свой вопрос, я не понимаю, что вы просите, убедитесь, что вы добавили соответствующие теги – Jerzyk
Я получаю ошибку времени выполнения на входе «[]))», но вместо этого он должен возвращать значение false. –
Похоже, вы получили полезный ответ ниже, но не ответили на него. Обратите внимание, что сайты, такие как Stack Overflow, полностью исполняются на основе доброй воли сообщества, поэтому, пожалуйста, старайтесь поощрять его взаимодействием и голосами столько, сколько вы можете собрать. – halfer