有幾個PAT
阿新 • • 發佈:2020-08-15
題目描述:
字串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
連結:
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的這個成績相加即可。