求助
  • 板块学术版
  • 楼主Yorg
  • 当前回复8
  • 已保存回复8
  • 发布时间2022/5/21 12:34
  • 上次更新2023/10/28 00:58:41
查看原帖
求助
617130
Yorg楼主2022/5/21 12:34

求帮助

题目描述

给你一个仅由大写英文字母构成的字符串SS,你需要从中找出一个最长的由字母 ‘A’ 开头,字母 'Z' 结束的子串,输出其长度,找不到输出00。

输入格式

一行一个字符串$S

输出格式

一行一个数,表示答案。


代码

#include<bits/stdc++.h>
using namespace std;
char S[200000];
int main(){
	int a,b,pd=0;	//pd用来判断找没找到Z 
	cin.getline(S,200000);
	int len=strlen(S);
	for(int i=0;i<len;i++)		//寻找第一个A(从前往后) 
	{
		if(S[i]=='A')
		{
			a=i;		//找到第一个A位置 
			pd=1;
			break;
		}
	}
	for(int i=len-1;i>=1;i--)		//寻找第一个Z(从后往前) 
	{
		if(S[i]=='Z')
		{
			b=i;		//找到第一个Z位置 
			if(pd==1) 	//判断有没有找到A 
				pd=1;
			else
				pd=0;
			break;
		}
	}
	if(pd&&b>a)		//找到A和Z并且A在Z前面 
		cout<<b-a+1;		//输出长度 
	else
		cout<<0;	
	return 0;
}

记录详情

有一个WA,自己找不出bug

我太弱了

求大佬帮助

2022/5/21 12:34
加载中...