首页 > 其他 > 详细

PAT A1093 Count PAT's [模拟]

时间:2019-09-04 16:33:48      阅读:55      评论:0      收藏:0      [点我收藏+]

题目描述

链接
计算一个字符串中有多少PAT

分析

暴力要超时
要想知道构成多少个PAT,那么遍历字符串后对于每一A,它前面的P的个数和它后面的T的个数的乘积就是能构成的PAT的个数
需要先遍历字符串数一数有多少个T

代码

#include<bits/stdc++.h>
using namespace std;

int main(){
    const int maxn = 1e5+10;
    char s[maxn];
    int cnt = 0;
    scanf("%s", s);
    int len = strlen(s);
    int p,a,t;
    p = a = t = 0;
    for(int i=0;i<len;i++){
        if(s[i] == 'T') t++;
    }
    for(int i=0;i<len;i++){
        if(s[i] == 'P') p++;
        if(s[i] == 'T') t--; //在遇到A前遇到的t都不算
        if(s[i] == 'A') cnt =  (cnt + (p*t)%1000000007)%1000000007;
    }
    printf("%d\n",cnt);

}

PAT A1093 Count PAT's [模拟]

原文:https://www.cnblogs.com/doragd/p/11459392.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!