
#include<stdio.h>//uncle-lu
#include<string.h>
//利用差分来找是否有未配对)在(前面的
char line[10010];
int flag[10010];
int main()
{
scanf("%s",line+1);
int len = strlen(line+1);
for(int i=1; i<=len; ++i)
{
if(line[i]=='(')flag[i] = 1;
else flag[i] = -1;
flag[i] += flag[i - 1];//objective 2抹平差分数组
}
bool f = true;
for(int i=1; i<=len; ++i)
{
if(flag[i]<0)f = false;//objective 1什么情况是发现了故障?
}
if(f)
printf("Yes");
else
printf("No");
return 0;
}
这是一个使用C语言编写的程序,它读取一串包含括号的字符串,并通过差分方法检查括号是否正确配对。程序通过计算每个位置上的括号差分来判断括号是否平衡。如果所有位置的差分都不小于0,则输出Yes,表示括号匹配;否则,输出No,表示存在未配对的括号。
1169

被折叠的 条评论
为什么被折叠?



