您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页1040 有几个PAT

1040 有几个PAT

来源:意榕旅游网

1040 有几个PAT (25 分)

字符串 APPAPT 中包含了两个单词 PAT,其中第一个 PAT 是第 2 位(P),第 4 位(A),第 6 位(T);第二个 PAT 是第 3 位(P),第 4 位(A),第 6 位(T)。

现给定字符串,问一共可以形成多少个 PAT

输入格式:

输入只有一行,包含一个字符串,长度不超过10​5​​,只包含 PAT 三种字母。

输出格式:

在一行中输出给定字符串中包含多少个 PAT。由于结果可能比较大,只输出对 1000000007 取余数的结果。

输入样例:

APPAPT

输出样例:

2

 

#include <cstdio>
#include <cstring>
const int max = 100010;
const int maxmax = 1000000007;
int main()
{
	char n[max];
	scanf("%s", n);
	int sump[max], sumt = 0, sum = 0;
	int len = strlen(n);
	for (int i = 0; i < len; i++)
	{
		if (i>0)  sump[i] = sump[i - 1];
		if (n[i] == 'P'){
			sump[i]++;
		}
	}
	for (int i = len-1; i >= 0; i--)
	{
		if (n[i] == 'T')   sumt++;
		else if (n[i] == 'A')  sum = (sum + sumt*sump[i]) % maxmax;
	}
	printf("%d\n", sum);
	return 0;
}

 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务