当前位置: 代码迷 >> C语言 >> [求助]一个简单的问题
  详细解决方案

[求助]一个简单的问题

热度:26   发布时间:2006-11-27 21:57:51.0
[求助]一个简单的问题

求括号深度和个数的问题

[此贴子已经被作者于2006-11-28 21:58:21编辑过]


----------------解决方案--------------------------------------------------------
用栈做
2个计数器

1个记栈的深度
1个记出栈次数
----------------解决方案--------------------------------------------------------

各位大哥,谁能帮忙写个啊!~`拜托了!`


----------------解决方案--------------------------------------------------------

楼上已经说的很简单了.一个记录栈顶top的最大值,一个记录(出栈的次数.

遇到(则进栈,同时判断max1<top是否成立,成立则更新max1.
遇到)则出栈,把栈顶元素(弹出,同时count++.
直到要处理的括号串全部处理完且栈也为空.


----------------解决方案--------------------------------------------------------
想起来确实容易,但是写出来老是出错,麻烦楼上帮忙写个行么?
在你看来这个肯定超级容易了

----------------解决方案--------------------------------------------------------
/*写了个,看看有没有错*/

#include<stdio.h>
#include<string.h>
int main()
{
char str[100] , stack[100];
int top=0,max=0,count=0;
gets(str);
for(int i=0;i<strlen(str);i++)
{
if(str[i]=='(')
{
stack[top++]=str[i];
if(top>max)
{
max=top;
}
}
else
{
stack[--top];
count++;
}
}
printf("%-3d%-3d\n",max,count);
return (0);
}
----------------解决方案--------------------------------------------------------
强人!~~~

我得好好学学

----------------解决方案--------------------------------------------------------

只要自己肯写,就会写的.楼主加油吧.


----------------解决方案--------------------------------------------------------
i 是整型,而strlen(str)是字符型,i < strlen(str)编译时会报warning的,
可不可以把它强制转化成整型:i < int(strlen(str))
----------------解决方案--------------------------------------------------------
  相关解决方案