博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PAT 1040. 有几个PAT
阅读量:5061 次
发布时间:2019-06-12

本文共 785 字,大约阅读时间需要 2 分钟。

PAT 1040. 有几个PAT

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

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

输入格式:

输入只有一行,包含一个字符串,长度不超过105,只包含P、A、T三种字母。

输出格式:

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

输入样例:

APPAPT

输出样例:

2

分析

PAT的数目等于每个A之前的P的数量乘以A之后T的数量之和;

代码如下

#include
using namespace std;int main(){ string s; getline(cin,s); /* 用long long int 防止sum过大,p[]数组中p[i]表示下标为i的A前面有p[i]个P。 sp为目前的P的数量,st表示目前T的数量 */ long long int p[s.size()]={0},sp=0,st=0,sum=0; /* 先正着遍历一遍用sp记录目前碰到P的数量,一旦遇到A 就把当前P的数量储存到p[i]中,这样每个A前的P的数量就知道了*/ for(int i=0;i
=0;i--){ if(s[i]=='T') st++; if(s[i]=='A') sum+=st*p[i]; } cout<
<

转载于:https://www.cnblogs.com/A-Little-Nut/p/8118319.html

你可能感兴趣的文章
[转] Transformer图解
查看>>
FreeBSD方式安装 MAC OSX
查看>>
Linux 根文件系统制作
查看>>
IOS--沙盒机制
查看>>
使用 JointCode.Shuttle 访问任意 AppDomain 的服务
查看>>
sqlite的坑
查看>>
digitalocean --- How To Install Apache Tomcat 8 on Ubuntu 16.04
查看>>
【题解】[P4178 Tree]
查看>>
Jquery ui widget开发
查看>>
更改git仓库地址
查看>>
有标号DAG计数 [容斥原理 子集反演 组合数学 fft]
查看>>
Recipe 1.4. Reversing a String by Words or Characters
查看>>
Rule 1: Make Fewer HTTP Requests(Chapter 1 of High performance Web Sites)
查看>>
sql注入
查看>>
「破解」Xposed强
查看>>
src与href的区别
查看>>
ABAP工作区,内表,标题行的定义和区别
查看>>
《xxx重大需求征集系统的》可用性和可修改性战术分析
查看>>
Python 中 创建类方法为什么要加self
查看>>
关于indexOf的使用
查看>>