为什么string第三个点会WA啊!!!
查看原帖
为什么string第三个点会WA啊!!!
580339
Cheney__22楼主2022/3/19 14:00

用string搞了半天第三个点都是WA恶心死我了

改成char数组瞬间AC

不知道是测评器的问题还是我有问题QAQ

#3数据

输入:ÿþ( 1 0 0 0 + ( 1 0 0 + ( 1 0 + 1 ) ) ) ) * ( a - ( b - ( c - d ) ) ) ) @

输出:NO

#include<bits/stdc++.h>
using namespace std;
char c[300];
int len ;	
int Find(  ) 
{
	int condition=0;//0状态:未找到过左括号 n状态:已找到过n个左括号 
	for (int i=0;i<=len;i++)//一直从0循环到 len
	{
	//	cout<<"i="<<i<<"  condition ="<<condition <<endl;
		if (c[i]=='(')//如果某一位是左括号,将状态加一
			condition++;
		else if ( c[i] == ')'&& condition != 0)//如果已经找到了左括号再找到右括号,就将状态减一
			condition--;
		else if ( c[i] == '@' )//如果读到了休止符,直接退出
			return condition; 
	 } 
	 return condition;
}
int main ()
{
	cin>>c;//直接输入这个string字符串
	len = strlen(c)-1;
	int ans= Find();
	//cout<<"len="<<len<<endl;
//	cout<<"ans="<<ans<<endl; 
	if (ans == 0)//如果最后匹配了
		cout<<"YES"; 
	else if (ans!=0)//如果最后不匹配
		cout<<"NO"; 
	return 0;
}
2022/3/19 14:00
加载中...