麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

PAT-1040. 有幾個PAT(25)

2019-11-11 04:44:11
字體:
來源:轉載
供稿:網友

字符串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

解題思路:按題目思路理解,此題中每一個P都可和之后的每一個A,T組成一個PAT,每一個A都可和之前的P及之后的T組成PAT,每一個T都可和之前的P,A組成PAT。此代碼按照A的數量把每個A能組成的PAT數量相加總和。

提交代碼

#include <stdio.h>#include <string.h>int main(){  char *p,*q;  char a[100002];  int nump = 0,numq = 0,s = 0;  //P,T,PAT的數量  scanf("%s",a);  p = a;  q = &a[strlen(a) - 1];  while(*p != 'P') //讓p指針指向第一個P所在的位置,nump準備計數    p++;  while(*q != 'T') //q指針指向最后一個T所在的位置    q--;  while(*p != 'A') //讓p指針指向第一個A所在的位置  {    if(*p == 'P')  //記下p的個數      nump++;    p++;  }  while(q > p)     //記下當前p位置之后T的個數  {    if(*q == 'T')      numq++;    q--;  }  q = &a[strlen(a) - 1];  while(q > p)  {    if(*p == 'A')   //每遇到一個A,累加能組成PAT的數量    {      s += (nump * numq);      if(s >= 1000000007)        s %= 1000000007;    }    else if(*p == 'P')      nump++;    else if(*p == 'T')      numq--;    p++;  }  PRintf("%d/n",s);  return 0;}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美性猛交xxx乱大交3蜜桃 | 免费观看黄色一级视频 | 欧美爱爱视频 | 日韩精品久久久久久久九岛 | 亚洲一区二区三区视频 | 亚洲成人国产 | 国内精品久久久久久2021浪潮 | 免费观看亚洲视频 | 可以看毛片的网址 | 亚洲国产午夜精品 | 欧美一级黄色免费 | 久久成人免费观看 | 成人在线免费观看视频 | 成人不卡一区二区 | 久久激情免费视频 | 九九热免费视频在线观看 | 在线观看视频亚洲 | 国产一区二区在线观看视频 | 国产精品久久久久久久午夜片 | 依人在线视频 | 黄色片小说 | 国产精品久久久久久久四虎电影 | 亚洲一区二区三区视频免费 | 久久精品亚洲欧美日韩精品中文字幕 | 欧美亚洲一区二区三区四区 | 亚洲欧美日韩精品久久 | 国产精品一区网站 | 亚洲精品在线观看免费 | 黄视频免费在线 | 韩国三级日本三级香港三级黄 | 亚洲视频黄 | 99精品视频在线看 | www.精品在线 | 亚洲精品在线观看免费 | 午夜激情视频网站 | 天天草天天爱 | 久久精品一区二区三区四区五区 | 欧洲精品久久 | 精品呦女| 91精品国产综合久久久欧美 | 国语自产免费精品视频在 |