1. 程式人生 > 實用技巧 >有幾個PAT

有幾個PAT

題目描述:

字串APPAPT中包含了兩個單詞PAT,其中第一個PAT是第 2 位(P),第 4 位(A),第 6 位(T);第二個PAT是第 3 位(P),第 4 位(A),第 6 位(T)。現給定字串,問一共可以形成多少個PAT

輸入格式:

輸入只有一行,包含一個字串,長度不超過105​​,只包含PAT三種字母。

輸出格式:

在一行中輸出給定字串中包含多少個PAT。由於結果可能比較大,只輸出對 1000000007 取餘數的結果。

輸入樣例:

APPAPT

輸出樣例:

2

連結:

https://pintia.cn/problem-sets/994805260223102976/problems/994805282389999616

思路:

1.遍歷字串,三輪遍歷,i標記P的位置,j標記A的位置,k標記T的位置,j在i後,k在j後。但是這樣的時間複雜度太高,會造成超時。

2.確定PAT中A的位置,然後找到A左側P的個數n1和A右側T的個數n2,通過n1*n2計算出當前A位置下的PAT單詞個數。然後把每一輪A的這個成績相加即可。