w****x 发帖数: 2483 | 1 int longestValidParentheses(string s) {
const char* str = s.c_str();
int nMax = 0;
const char* p = str;
stack stk;
while (*p != 0)
{
if (*p == '(')
stk.push(p);
else if (*p == ')')
{
if (!stk.empty() && *stk.top() == '(')
{
stk.pop();
nMax = max(p - (stk.empty() ? str-1 : stk.top()), nMax);
}
else stk.push(p);
}
p++;
}
return nMax;
}
比OJ的答案强点 |
s********0 发帖数: 34 | |
a*******y 发帖数: 1040 | 3 这个str -1 还是有可能越界的吧,是不是改成p-str +1合适点 |
w****x 发帖数: 2483 | 4
过了OJ啊
【在 a*******y 的大作中提到】 : 这个str -1 还是有可能越界的吧,是不是改成p-str +1合适点
|
a*******y 发帖数: 1040 | 5 什么意思?OJ是啥?
【在 w****x 的大作中提到】 : : 过了OJ啊
|
C*******n 发帖数: 49 | 6 从左到右扫一边,再从右到左扫一边,O(n) time O(1) space |