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

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

PAT-1040. 有幾個PAT(25)

2019-11-11 05:32:01
字體:
來源:轉載
供稿:網友

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 色视频在线播放 | 亚洲一区二区三区在线看 | 日本大片在线播放 | 狠狠干天天操 | 99影视电影电视剧在线播放 | 欧美精品一级 | 又黄又爽免费无遮挡在线观看 | 欧美一级小视频 | 蜜桃精品视频 | 一区二区三区欧美日韩 | 国产精品久久久久久久久久尿 | 国产无遮挡一级毛片 | 精品中文一区 | 欧美一级做性受免费大片免费 | 毛片免费视频观看 | 爽爽视频免费看 | 欧美999| 广州毛片 | 干一夜综合 | 国产一区二区三区精品在线观看 | 国产国语毛片 | 中文在线日韩 | 国产高潮好爽好大受不了了 | 欧美日韩亚洲在线 | av免费在线不卡 | 色人阁在线视频 | 一区二区三区播放 | 成人午夜视频在线观看 | 久久亚洲精品11p | 国产精品99久久久久久久vr | 夜添久久精品亚洲国产精品 | 日本一区二区不卡在线观看 | 亚洲影视中文字幕 | 原来神马影院手机版免费 | 欧美1区2区 | 免费黄色大片在线观看 | 黄色免费影片 | 亚洲aⅴ在线观看 | 国产精品国产三级国产在线观看 | 一级大黄毛片 | 毛片在线免费视频 |