当前位置: 首页 > news >正文

AcWing 1583:PAT 计数 ← 中国电子学会青少年软件编程等级考试(2024年C++四级)

【题目来源】
https://www.acwing.com/problem/content/1585/

【题目描述】
字符串 APPAPT 中共包含两个 PAT 作为子串。
第一个子串由第二,第四和第六个字符组成,第二个子串由第三,第四和第六个字符组成。
现在给定一个字符串,请你求出字符串中包含的 PAT 的数量。

【输入格式】
共一行,包含一个由大写字母 P,A,T 构成的字符串。

【输出格式】
输出字符串中包含的 PAT 的数量。
由于结果可能很大,请你输出对
1000000007 取模后的结果。​​​​​​​

【数据范围】
给定字符串的长度不超过
10^5

【输入样例】
APPAPT

【输出样例】
2

【算法分析】
对于字符串中的每一个 A,它能够构成字串 PA 的数量是它之前的所有 P 的数量。
对于字符串中的每一个 T,它能够构成字串 PAT 的数量是它之前所有字串 PA 的数量。

【算法代码】

#include <bits/stdc++.h>
using namespace std;const int MOD=1e9+7;
long long p,a,t;int main() {string s;cin>>s;for(int i=0; i<s.size(); i++) {if(s[i]=='P') p++;else if(s[i]=='A') a+=p;else t=(t+a)%MOD;}cout<<t<<endl;return 0;
}/*
in:
APPAPTout:
2
*/





【参考文献】
https://www.acwing.com/solution/content/11089/
https://www.acwing.com/solution/content/46459/
https://www.acwing.com/solution/content/124384/


 

相关文章:

  • spark-shell基础知识
  • VMware 安装 win10 系统的教程
  • java是实现视频流Rtsp转Rtmp
  • 从工业到家居:电源方案的广泛应用 | 多领域解决方案
  • VMWare 16 PRO 安装 Rocky8 并部署 MySQL8
  • 低功耗数字工厂的新时代:安卓触摸一体机助力绿色高效管理
  • SAP ABAP BOM 抬头更改(BAPI:CSAP_MAT_BOM_MAINTAIN)
  • 20250415-vue-插槽-默认内容
  • 「数据可视化 D3系列」入门第二章:选择器与数据绑定
  • DELL电脑开机进入自检界面
  • 【开源项目】Excel手撕AI算法深入理解(三):Backpropagation、mamba、RNN
  • TypeScript 快速上手--禹神
  • Redis-高级篇(分布式缓存/持久化)
  • 数据结构(4)
  • redis 放置序列化的对象,如果修改对象,需要修改版本号吗?
  • 数据库的基本原则
  • 【Vue级联选择器数据处理优化:解决企业类型选择与回显问题】
  • 实现添加用户和SpringBoot-实现修改和删除
  • Golang|在线排查协程泄漏
  • Go:goroutine 和通道
  • 佩索阿稳定常销,陀翁不断加印,青少年喜欢黑塞
  • 不朽诗篇的现代重生,意大利音乐剧《神曲》将来华15城巡演
  • 黎巴嫩“伊斯兰集团”组织证实其高级成员在以军空袭中丧生
  • 2025年度“沪惠保”将于4月22日开售,保费不变
  • 多元布局、抱团取暖……上海这个区和外向型企业坐到一起聊了什么
  • 接下来上海很热闹,天后天团轮番来开演唱会