PAT甲级-逻辑题类型-1093 Count PAT‘s解题思路

1093 Count PAT’s (25 分)

在这里插入图片描述

思路

找找逻辑,不需要暴力
一遍循环即可~

为了防止溢出需要在每一步添加取%再加,而不是只对结果取%

代码

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

int main(){
    
    

    string s;
    cin>>s;
    int len = s.length();
    int Pnum = 0,P_allnum = 0,PAnum = 0,PA_allnum = 0,all = 0;
    for(int i =0;i<len;i++)
    {
    
    
        if(s[i]=='P'){
    
    Pnum+=1;P_allnum+=1;}
        else if(s[i]=='A'){
    
    PA_allnum+=P_allnum;PAnum+=P_allnum;Pnum=0;}
        else {
    
    all=(PA_allnum+all)%1000000007;PAnum=0;}
    }
    cout<<all<<endl;
}

猜你喜欢

转载自blog.csdn.net/weixin_43999137/article/details/114629211