【PAT B1040】有几个PAT (25 分)
时间:2019-04-19
本文章向大家介绍【PAT B1040】有几个PAT (25 分),主要包括【PAT B1040】有几个PAT (25 分)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1040 有几个PAT (25 分)
字符串
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
======================================
找规律呗,找出来就AC,找不出来就GG。
规律是:
每一个A前面的P的个数,乘上这个A后面的T的个数。
把每一个A乘完的结果累加就是结果。
现在的问题是:对于每一个A,如何获取它前面 P 的个数,以及它之后 T 的个数。
遍历一遍字符串,我们获得 T 的总数为cntT。
再遍历一遍字符串,P的个数存在cntP里,每碰到一个P,cntP++, 每碰到一个T,cntT--,每碰到一个A,就把cntP * cntT累加在result里。
遍历完后,输出result。
=====================================
#include <iostream>
using namespace std;
int main(){
string s;
cin >> s;
int cntP = 0, cntT = 0, result = 0, len = s.length();
for(int i = 0; i < len; i++)
if(s[i] == 'T') cntT++;
for(int i = 0; i < len; i++){
if(s[i] == 'P') cntP++;
if(s[i] == 'A') result = (result + cntP * cntT % 1000000007) % 1000000007;
if(s[i] == 'T') cntT--;
}
printf("%d", result);
return 0;
}
- 使用JPA中@Query 注解实现update 操作
- 微信小程序开发教程!博卡君第二弹【微信小程序项目结构以及配置】
- WCF浅尝
- 如何将页面设置为微信端才能打开
- 你不可错过的二维码生成与解析-java后台与前端js都有
- Windows服务创建及安装
- dede自定义表单增加添加时间怎么弄
- nodejs配置简单HTTP服务器
- marquee一行代码实现滚动跑马灯效果无需js
- 如何用SQL命令行工具删除dedecms指定id文章
- 怎么采集dedecms自定义内容模型
- dedecms怎样调用指定id文章?
- c++ list, vector, map, set 区别与用法比较
- 前台开发从头说起:谈谈CSS选择符
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Linux下9种优秀的代码比对工具推荐小结
- Android开发实现在Wifi下获取本地IP地址的方法
- Android基于Glide v4.x的图片加载进度监听
- Android如何通过scheme跳转界面
- Android EditText实现输入金额类型详解
- ubuntu20.04中文输入法安装步骤
- 如何利用Android Studio将moudle变成jar示例详解
- Android自带的四种线程池使用总结
- CentOS8.1搭建Gitlab服务器详细教程
- Android开发之图片旋转功能实现方法【基于Matrix】
- Android编程简单实现拨号器功能的方法
- win10 + Ubuntu20.04 LTS双系统引导界面美化
- Android开发从相册中选取照片的示例代码
- 详解Android WebView的input上传照片的兼容问题
- Ubuntu14.04安装、配置与卸载QT5的步骤详解