题目链接:Aizu 1173 The Balance of the World
用栈模拟一下就行了,居然WA了好几次==。
strcmp(s1,s2)
说明:
当s1<s2时,返回为负数
当s1=s2时,返回值= 0
当s1>s2时,返回正数
#include <iostream>
#include <stack>
#include <algorithm>
#include <cstdio>
#include <cstring>
using namespace std;
const int MAX_N = 100 + 10;
char str[MAX_N];
int main()
{
//freopen("in.txt", "r", stdin);
while(gets(str) && strcmp(str, "."))
{
bool flag = false;
stack <char> s;
int len = strlen(str);
int i;
for(i = 0; i < len; i++)
{
if(str[i] == '.')
break;
if(str[i] == ']')
{
if(s.empty())
{
printf("non");
flag = true;
break;
}
else
{
if(s.top() == '[')
s.pop();
else
{
printf("non");
flag = true;
break;
}
}
}
else if(str[i] == ')')
{
if(s.empty())
{
printf("non");
flag = true;
break;
}
else
{
if(s.top() == '(')
s.pop();
else
{
printf("non");
flag = true;
break;
}
}
}
else if(str[i] == '(' || str[i] == '[')
s.push(str[i]);
}
if(!s.empty())
{
if(!flag)
printf("non");
flag = true;
}
if(!flag)
printf("yesn");
}
return 0;
}
最后
以上就是光亮河马最近收集整理的关于Aizu 1173 The Balance of the World的全部内容,更多相关Aizu内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复