返回信息流下面三个if都不满足直接false啊,这样(()}})会被判true
这是一条镜像帖。来源:北邮人论坛 / java / #64588同步于 2020/10/2
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
Re: 菜鸟求问哪里出错
m995877461
2020/10/2镜像同步14 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
(个人见解欢迎指正)如果是())这种情况呢,左括号push了,第一个右括号pop了,就已经空了,然后peek也没东西,empty还是成立的。要么报错要么就是错误答案了呀。
我感觉应该是判断到右括号之后的if里面再进行peek的操作,如果不符合直接return false,不需要等for循环了?
感谢,加了个else{return false},但是()这个会判断出错
【 在 m995877461 (空白) 的大作中提到: 】
: 下面三个if都不满足直接false啊,这样(()}})会被判true
你把代码贴出来呀..
【 在 y19990108 (小孩子假笑,成年人假哭) 的大作中提到: 】
: class Solution
: {
: public boolean isValid(String s)
: ...................
class Solution
{
public boolean isValid(String s)
{
int num=s.length();
if(num%2==1)
{
return false;
}
Stack sta=new Stack();
for(int i=0;i<num;i++)
{
char c=s.charAt(i);
if(c=='('||c=='['||c=='{')
{
sta.push(c);
}
if(c==')'&&!sta.empty())
{
if((char)sta.peek()=='(')
sta.pop();
else{return false;}
}
if(c==']'&&!sta.empty())
{
if((char)sta.peek()=='[')
sta.pop();
else {return false;}
}
if(c=='}'&&!sta.empty())
{
if((char)sta.peek()=='{')
sta.pop();
else{return false;}
}
else{
return false;
}
}
return sta.empty();
}
}
【 在 m995877461 (空白) 的大作中提到: 】
: 你把代码贴出来呀..
if 等于)
else if 等于}
else if 等于】
else return false
这样加,而且前面if c==(和后面加的只判断一个
【 在 y19990108 (小孩子假笑,成年人假哭) 的大作中提到: 】
: class Solution
: {
: public boolean isValid(String s)
: ...................
class Solution
{
public boolean isValid(String s)
{
int num=s.length();
if(num%2==1)
{
return false;
}
Stack sta=new Stack();
for(int i=0;i<num;i++)
{
char c=s.charAt(i);
if(c=='('||c=='['||c=='{')
{
sta.push(c);
}
if(c==')')
{
if(!sta.empty())
{
if((char)sta.peek()=='(')
sta.pop();
else{return false;}
}
else
{return false;}
}
if(c==']')
{
if(!sta.empty())
{
if((char)sta.peek()=='[')
sta.pop();
else{return false;}
}
else {return false;}
}
if(c=='}')
{
if(!sta.empty())
{
if((char)sta.peek()=='{')
sta.pop();
else{return false;}
}
else{return false;}
}
}
return sta.empty();
}
}
谢谢哥
【 在 m995877461 (空白) 的大作中提到: 】
: if 等于)
: else if 等于}
: else if 等于】
: ...................
楼主把最新代码贴下?
之前面公司写题写了这个几乎和楼主一样的答案,听楼主说才知道原来是leetcode原题……那应该问题一样,而我和楼主最初答案一样并不能100%全过,也不知道哪错了