gpt4 book ai didi

c - 平衡且正确书写的表达

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:07:11 24 4
gpt4 key购买 nike

我有一个带括号的字符串 (char *ch),我必须:

1) 验证字符串是否写得正确且平衡,例如:“(())”写得正确且平衡良好,而“)()”既不正确也不平衡

2) 如果字符串写得不好,不平衡,则返回第一个偏离此规则的括号的位置。

第一个问题,没问题。我的代码如下:

int WBalanced(char *ch)
{
stack p; int i;

for (i=0; i<strlen(ch);i++)
{

if(ch[i] == '(')
{
addStack(P, ch[i]);
else if(ch[i] == ')')
{
if(stackEmpty(P) == 0)
unstack(P);
else
return (0);
}
}
}



if(stackEmpty(P)==1)
return (0);
else
return (1);

}

但是对于第二个问题,我不是很理解这个问题。如果我的字符串是“(()”,那么这个位置是第二个括号的位置吗?如果我的字符串是“(()(”,那么偏括号的位置是什么?

谢谢你的帮助

最佳答案

毫无疑问,有很多方法可以解决这个问题,但如果没有额外的要求,我会计算从左到右扫描的嵌套级别。如果计数小于零,请指出该符号是原因。

如果字符串结束并且级别不为零,则指向那个地方(可能)作为不完整的表达式。

关于c - 平衡且正确书写的表达,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55446635/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com