WA 求助
  • 板块CF1101B Accordion
  • 楼主sunyizhe还是MC大佬
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/1/19 19:19
  • 上次更新2023/10/24 03:35:21
查看原帖
WA 求助
481330
sunyizhe还是MC大佬楼主2023/1/19 19:19
//程序算法:模拟 
#include <bits/stdc++.h>
using namespace std;
int main()
{
	string s;
	cin>>s;
	int len=s.size();
	if(len<4)//长度不够 
	{
		cout<<-1<<endl;
		return 0;
	}
	int l=-1,r=-1,ld=-1,rd=-1;
	
	//判断 [:
	for(int i=0;i<len;i++)
		if(s[i]=='[')
		{
			l=i;
			break;
		}
	if(l==-1)
	{
		cout<<-1<<endl;
		return 0;
	}
	
	for(int i=l+1;i<len;i++)//从 [ 的后面开始找,前面的无效 
		if(s[i]==':')
		{
			ld=i;
			break;
		}
	if(ld==-1)
	{
		cout<<-1<<endl;
		return 0;
	}
	
	//:] 同理。
	for(int i=len-1;i>=ld+1;i--)
		if(s[i]==':')
		{
			rd=i;
			break;	
		} 
	if(rd==-1)
	{
		cout<<-1<<endl;
		return 0;
	}
	for(int i=len-1;i>=rd+1;i--)
		if(s[i]==']')
		{
			r=i;
			break;
		}
	if(r==-1)
	{
		cout<<-1<<endl;
		return 0;
	}
	
	//特判 :] 在 [: 的前面
	if(ld>rd)
	{
		cout<<-1<<endl;
		return 0;	
	}
	//计算结果。 
	int ans=4;
	for(int i=ld+1;i<=rd-1;i++)
		if(s[i]=='|')ans++;
	cout<<ans<<endl; 
	return 0;
}
2023/1/19 19:19
加载中...