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
package com.hone.basical; import java.util.Scanner; /**
* 原题目:https://www.patest.cn/contests/pat-b-practise/1039
*
* @author Xia 理解题目
* 有两个结点运行超时
* 思路来源:https://www.cnblogs.com/asinlzm/p/4440603.html
*/ public class basicalLevel1040howManyPat {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
char[] pat = in.nextLine().toCharArray();
int len = pat.length;
in.close();
int numPat = 0, numAt = 0, num = 0;
// 从后面往前面遍历
while ((len--) > 0) {
if (pat[len] == 'T') {
numAt++;
} else if (pat[len] == 'A') {
numPat += numAt;
} else {
num += numPat;
// 因为输出的结果具有周期性,所以可以提前处理,当参数大于指定的次数的时候
// 可以先取余数
if (num > 1000000007) {
num = num % 1000000007;
}
}
}
System.out.println(num);
}
}
PAT——1040. 有几个PAT的更多相关文章
- PAT 1040有几个PAT
原题:https://pintia.cn/problem-sets/994805260223102976/problems/994805282389999616 1040 有几个PAT (25 分) ...
- PAT 1040. 有几个PAT(25)
字符串APPAPT中包含了两个单词"PAT",其中第一个PAT是第2位(P),第4位(A),第6位(T):第二个PAT是第3位(P),第4位(A),第6位(T). 现给定字符串,问 ...
- PAT 1040 有几个PAT
https://pintia.cn/problem-sets/994805260223102976/problems/994805282389999616 字符串 APPAPT 中包含了两个单词 PA ...
- PAT (Basic Level) Practise 1040 有几个PAT(DP)
1040. 有几个PAT(25) 时间限制 120 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CAO, Peng 字符串APPAPT中包含了两个单 ...
- PAT-乙级-1040. 有几个PAT(25)
1040. 有几个PAT(25) 时间限制 120 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CAO, Peng 字符串APPAPT中包含了两个单 ...
- 1040. 有几个PAT(25)
原题: https://www.patest.cn/contests/pat-b-practise/1040 思路: 先给大家扔个测试PAPAATTPATTT, 人工查一下这段字符串能组成 34个PA ...
- PAT (Basic Level) Practise (中文)-1040. 有几个PAT(25)
1040. 有几个PAT(25) http://www.patest.cn/contests/pat-b-practise/1040 字符串APPAPT中包含了两个单词“PAT”,其中第一个P ...
- 1040 有几个PAT (25 分)
题目链接:1040 有几个PAT (25 分) 做这道题目,遇到了新的困难.解决之后有了新的收获,甚是欣喜! 刚开始我用三个vector数组存储P A T三个字符出现的位置,然后三层for循环,根据字 ...
- PAT(B) 1040 有几个PAT(Java)
题目链接:1040 有几个PAT (25 point(s)) 题目描述 字符串 APPAPT 中包含了两个单词 PAT,其中第一个 PAT 是第 2 位§,第 4 位(A),第 6 位(T):第二个 ...
随机推荐
- java 通用对象排序
一个排序类,一个排序util? no.no.no…… 使用反射机制,写了一个通用的对象排序util,欢迎指正. 实体类: package entity; public class BaseTypeEn ...
- 【设计模式】observer(观察者)-- 对象行为型模式5.7
1.意图 对象之间一对多的依赖关系,当目标对象发生改变时,所有依赖于它的对象都要得到通知并自动更新 2.别名 依赖,发布-订阅 3.动机 1)需要确保相互协作的对象的一致性(数据要保持一致),但一致性 ...
- 删除N天前的备份文件脚本(windows)
D:\bat\forfiles.exe /p "D:\dmpbk" /s /m *.dmp /d -2 /c "cmd /c del @path" 解析: 使用 ...
- WC2017 游记
你若安好,便是晴天. 其实本来是有一个写的比较详细的游记的……然而后来给断了,懒得补上了,简单一点好了. Day 0 早早爬起来去赶高铁…… 路上没太多可以写的……坐高铁的时候想起来了一些不开心的事情 ...
- cf1056B. Divide Candies(数论 剩余系)
题意 题目链接 求满足\(i^2 + j^2 \% M = 0\)的数对\((i, j)\)的个数,\(1 \leqslant i, j \leqslant 10^9, M \leqslant 100 ...
- C# 读写txt文件方法
添加引用: using System.IO; 1.File类写入文本文件: private void btnTextWrite_Click(object sender, EventArgs e) { ...
- LDAP常用命令解析
OpenLDAP常用命令讲解: ldapadd -x 进行简单认证 -D 用来绑定服务器的DN -h 目录服务的地址 -w 绑定DN的密码 ...
- volley6--CacheDispatcher从缓存中获取数据
源码: /* * Copyright (C) 2011 The Android Open Source Project * * Licensed under the Apache License, V ...
- android studio新建项目时出现Error:Execution failed for task ':app:preDebugAndroidTestBuild'.
android studio更新后创建新项目时出现以下错误 可以用Build->Rebuild Project解决,但这个方法只是临时的,重新打开项目还是会报错 所以用另一种方法: 在app下的 ...
- ISO14971-2007阅读
1.什么是风险? 风险的概念,公认的组成有两部分: 损害发生的概率 损害的后果,即损坏的严重性 2.风险管理的适用范围? 适用于医疗器械生命周期所有阶段 不适用于临床判断 不要求具体的质量体系,但14 ...