現給定字串,問一共可以形成多少個pat?
輸入格式:
輸入只有一行,包含乙個字串,長度不超過105,只包含p、a、t三種字母。
輸出格式:
在一行中輸出給定字串中包含多少個pat。由於結果可能比較大,只輸出對1000000007取餘數的結果。
這個題搞了挺久,原來的演算法時間複雜度太高有三個迴圈巢狀,o(n^3),執行超時。然後想出乙個新的演算法,先想只需要兩個字元匹配的情況,然後拓展到三個,這個演算法應該可以拓展的無窮個,只有乙個迴圈,時間複雜度只有o(n)。
#include
#include
using
namespace
std;
int main()
else
else
else}}
}}
} sum %= 1000000007;
cout
<< sum << endl;
system("pause");
return
0;}
#include
#include
using
namespace
std;
int main()
else
if (list[j] == 't')}}
} sum %= 1000000007;
cout
<< sum << endl;
system("pause");
return
0;}
#include
#include
using
namespace
std;
int main()
if (list[i] == 'a')
if (list[i] == 't')
}sum %= 1000000007;
cout
<< sum << endl;
system("pause");
return
0;}
B1040 有幾個PAT 25 分
現給定字串,問一共可以形成多少個pat?輸入只有一行,包含乙個字串,長度不超過10 5 只包含p a t三種字母。在一行中輸出給定字串中包含多少個pat。由於結果可能比較大,只輸出對 1000000007 取餘數的結果。2分析 輸入字串,統計出每乙個位置前面p出現的個數和t出現的個數,然後遍歷字串,...
PAT 乙級練習 1040 有幾個PAT
本題鏈結 現給定字串,問一共可以形成多少個 pat?輸入格式 輸入只有一行,包含乙個字串,長度不超過10 5 只包含 p a t 三種字母。輸出格式 在一行中輸出給定字串中包含多少個 pat。由於結果可能比較大,只輸出對 1000000007 取餘數的結果。輸入樣例 輸出樣例 2對於字串中的每乙個a...
PAT 乙級練習題 1005
當我們驗證卡拉茲猜想的時候,為了避免重複計算,可以記錄下遞推過程中遇到的每乙個數。例如對n 3進行驗證的時候,我們需要計算3 5 8 4 2 1,則當我們對n 5 8 4 2進行驗證的時候,就可以直接判定卡拉茲猜想的真偽,而不需要重複計算,因為這4個數已經在驗證3的時候遇到過了,我們稱5 8 4 2...