PAT-B 1040 有几个PAT(C语言)

题目

链接:PAT (Basic Level) Practice 1040 有几个PAT

字符串APPAPT中包含了两个单词PAT,其中第一个PAT是第 2 位(P),第 4 位(A),第 6 位(T);第二个 PAT 是第 3 位(P),第 4 位(A),第 6 位(T)。
现给定字符串,问一共可以形成多少个 PAT

输入格式:

输入只有一行,包含一个字符串,长度不超过10^5​​ ,只包含 PAT 三种字母。

输出格式:

在一行中输出给定字符串中包含多少个 PAT。由于结果可能比较大,只输出对1000000007 取余数的结果。

输入样例:

APPAPT

输出样例:

2


思路

PAT的个数就是每个字母A左端P的个数与右边T的个数的乘积的和。


代码

#include<stdio.h>
#include<string.h>
int main()
{
  
  char c[100001];
  long long sum = 0;
  int countp = 0;
  int countt = 0;
  scanf("%s", c);

  //得到T的个数
  for(int i = 0; i < strlen(c); i++){
    if(c[i] == 'T'){
      countt++;
    }
  }
  
  for(int i = 0; i < strlen(c); i++){
    if(c[i] == 'P'){          //左端字母P的个数
      countp++;
    }
    else if(c[i] == 'T'){    //右端字母T的个数
      countt--;
    }
    else if(c[i] == 'A'){
      sum += countp * countt;
    }
  }
  

  printf("%lld", sum % 1000000007);
  return 0;
}


---END---

其他相关题目

PAT-B 1036 跟奥巴马一起编程(C语言)
PAT-B 1037 在霍格沃茨找零钱(C语言)
PAT-B 1038 统计同成绩学生(C语言)
PAT-B 1039 到底买不买(C语言)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容