nyoj 2

  题目:http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=2

  被strlen()坑了(自己太菜> <),许久没用它,写的时候:l = strlen(br) - 1;。。。。但纠正以后还是WA了,我觉得自己代码没啥毛病(就当AC了吧。。):

#include <iostream>
#include <string.h> // oj上不加这个会CE
using namespace std;
#define M 10001
int main()
{
	char br[M], s[M]; int t, l, i, flag;
	cin >> t;
	while (t--)
	{
		cin >> br;
		l = strlen(br);
		flag = i = 0;
		if (br[l] == '(' || br[l] == '[' || l == 1)
			cout << "No" << endl;
		else {
			while (l > -1)
			{
				switch (br[l])
				{
				case ')': s[i++] = br[l]; break;
				case ']': s[i++] = br[l]; break;

				case '(': switch (s[i - 1])
						{
						case ')': i--; break;
						default: flag = 1; break;
						}
						  break;
				case '[': switch (s[i - 1])
						{
						case ']': i--; break;
						default: flag = 1; break;
						}
						  break;
				}
				if (flag)
					break;
				l--;
			}
			if (flag)
				cout << "No" << endl;
			else
				cout << "Yes" << endl;
		}
	}
	return 0;
}

  

猜你喜欢

转载自www.cnblogs.com/darkchii/p/9334376.html