天天看點

pat 1093

1、題目連結

https://www.patest.cn/contests/pat-a-practise/1093

2、題意分析

(1)題意:分析一個字元串中擁有多少個不重複的PAT

(2)分析:有兩種思路。

1)我們可以從頭到尾依次周遊一個字元串,如果目前字元等于P,則再從目前位置周遊,找出字元A,然後再在字元A的基礎上找出字元T,累計這樣的次數,最後取餘,得到最後的一個答案。

2)同時,我們可以找出這個字元串中每個A前面有多少個P,後面有多少個T。根據排列與組合原理,可知每個字母A可以組成的PAT有sumP*sumT個,然後将這些sumP*sumT累加,然後取餘,得到答案。

3、第一種方法代碼如下:

但是上交測試之後發現時間超過,因為我們使用了三次循環,導緻時間超過,是以這裡推薦使用第二種方法,代碼如下:

PAT