文章
25
粉丝
364
获赞
8
访问
219.0k
思路:用栈存储目前已经被扫描过但是没有适配的括号的下标,扫描完之后栈内剩下的下标指向的括号就是所有未适配的括号
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char s[2][101];
int stack[101];//存放扫描过但未适配的括号的下标
int top = -1;
int len;
while (scanf("%s", s[0]) != EOF)
{
top = -1;
len = strlen(s[0]);
for (int i = 0; i < len; i++)//初始化
{
s[1][i] = ' ';
}
s[1][len]='\0';
for (int i = 0; i < len; i++)
{
if (s[0][i] == '(')//直接入栈
{
stack[++top] = i;//存放下标
}
else if (s[0][i] == ')')
{
if (top==-1)
{
stack[++top] = i;
}
else if (s[0][stack[top]]=='(')//与上一个括号适配
{
top--;
}
else
{...
登录后发布评论
暂无评论,来抢沙发