#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
//数据结构:数组
const int MAXN = 100010;
const int MOD = 1000000007;
char str[MAXN];//字符串数组
int leftNumP[MAXN] = {0};//每一位左边(含)P的个数
int rightNumT[MAXN] = {0};
int main(){
// gets(str);//读入字符串 PAT已经取消gets的使用 提交到PAT会报compilation error //改为如下的使用方法 cin.getline(str,MAXN); int len = strlen(str);//长度
// for(int i = 0;i < len;i++){
// printf("%c",str[i]);
// }//从左往右遍历字符串中的P for(int i = 0;i < len;i++){if(i > 0){leftNumP[i] = leftNumP[i-1]; }if(str[i] == 'P'){leftNumP[i]++;}
// printf("%d",leftNumP[i]);}
// printf("\n");//法1:再用一个如上的数组rightNumT[MAXN]存放 //从右往左遍历字符串中的T
// for(int i = len - 1;i >= 0;i--){
// if(i < len - 1){
// rightNumT[i] = rightNumT[i+1];
// }
// if(str[i] == 'T'){
// rightNumT[i]++;
// }
//// printf("%d",rightNumT[i]);
// }
// int ans = 0;
// for(int i = 0;i < len;i++){
// if(str[i] == 'A'){
// ans = (ans + leftNumP[i]*rightNumT[i]) % MOD;
// }
// } //在法1的基础上优化 不再用数组rightNumT[MAXN]存//改为用一个变量rightNumT存就好//因为leftNumP[MAXN]已经存好数值了 对每一个rightNumT 直接取//leftNumP[i]中对应的值就好了 没必要再开个rightNumT[MAXN]的数组//浪费空间 当然开了之后照样能AC int ans = 0 , rightNumT = 0;for(int i = len - 1;i >= 0;i--){if(str[i] == 'T'){rightNumT++; }else if(str[i] == 'A'){ans = (ans + rightNumT*leftNumP[i]) % MOD; } } printf("%d\n",ans);return 0;
}
详细解决方案
PAT甲级 1093 Count PAT‘s
热度:5 发布时间:2024-01-29 00:51:12.0
相关解决方案
- 急求帮忙!mysql 【 Column count doesn't match value count 】,该怎么解决
- Ibatis 查询话语selec count(*),getSqlMapClientTemplate().后面应该接什么
- select count(*)as num from hall where Hall_No=10000001关于这个SQL语句,怎么取出返回的数字
- 关于httpWebRequest请求失败异常:The specified call count is not a number
- linq 中 g.first()怎么跟g.count() 连用啊
- repeater中有底据为什么items.count=0呢
- 求答案 GridView1.Rows.Count 一直等于0解决思路
- ds.Tables[0].Rows.Count 能查到0表 但count=0 sql语句没有关问题
- DataList怎么统计出数据库的记录数,类似GridView.Rows.Count
- DataGrid绑定时DataView时,DataView.Count()为237或259行,为什么绑定后,界面上一直只有24行?解决方法
- 请教?Int((DataView.Count+9)\10)是什么意思
- 在有几百万条数据表里使用SQL COUNT 函数计算太慢如何解决
- ,select count(*) 查询结果为空,而不是所需要的0
- GridView1.Columns.count 如何会为0
- count()函数用ExecuteScalar执行时,查到的数据库中记录数如何像是随机数啊
- 是这样写吗? Library.Take(count).Where(a => a.Status==status)
- 蛇年万事大吉!Public Property Name As String = "kkk" & [color=#FF0000]nf.Users.Count[
- sql count()一张表里的结果做为一列加到select语句里解决方法
- count(case when.distinct 解决方法
- DB2 count(*),count(一)区别
- select count(*) from db2解决办法
- DB2 count(*),count(1)区别,该怎么处理
- 为什么小弟我的select count(*) from行报错呢,大家帮小弟我看看,多谢了
- count,该如何解决
- select count()查询性能差,请
- SVN异常:Thread attempted to read nesting count of a lock it did not own
- jquerymobile-10 替list添加数字气泡(count bubbles)
- count(*)用什么该?
- select count(*) from products 得出结果令我郁闷,
- select count(*) from products 找了一天找出错误,给大家分享一下,