網易2017秋 暗黑的字串

2021-08-17 16:37:03 字數 814 閱讀 4161

題目描述:乙個只包含'a','b','c'的字串,如果存在某一段長度為3的連續子串中恰好'a','b','c'各有乙個,那麼這個字串就是純淨的,否則就是暗黑的。例如:

baacaaccbaaa連續子串"cba"中包含了'a','b','c'各乙個,所以是純淨的字串

aabbccaabb不存在乙個長度為3的連續子串中包含'a','b','c',所以是暗黑的字串

計算出長度為n的字串(只包含'a','b','c'),有多少個是暗黑的字串。

輸入描述:

輸入乙個整數n,表示字串長度(1<=n<=30)

輸出描述:

輸出乙個整數表示有多少個暗黑字串

輸入例子:

輸出:分析:定義dp1[i]為結尾兩個字元相同,長度為i的暗黑字串個數(aa,bb,cc,aaa,baa,caa等)

定義dp2[i]為結尾兩個字元不同,長度為i的暗黑字串個數(ab,ac,aab,aac等)

所求即為dp1[n]+dp2[n].

dp1[i]=dp1[i-1]+dp2[i-1]     dp2[i]=dp1[i-1]*2+dp2[i-1]   時間複雜度為o(n).

**:#include

using namespace std;

int main()

int n;

cin>>n;

long long dp1[35];

long long dp2[35];

dp1[1]=0,dp1[2]=3;

dp2[1]=3,dp2[2]=6;

for(int i=3;i<=n;i++)

cout<

求解暗黑字串(網易2017秋招)

問題描述 乙個只包含 a b 和 c 的字串,如果存在某一段長度為3的連續子串中恰好 a b 和 c 各有乙個,那麼這個字串就是純淨的,否則這個字串就是暗黑的。例如 baacaaccbaaa 連續子串 cba 中包含了 a b c 各乙個,所以是純淨的字串 aabbccaabb 不存在乙個長度為3的...

網易0912 暗黑字串

題目的大意 乙個字串只能由 a b c 三個字母組合而成 若在字串中如果 a b c 三個字元任意組合出現,則此字串為清澈的,否則為黑暗的。如 aabbccabaa 因為包含 cab 所以是清澈的 aabbccbcbba 則是黑暗的。輸入 字串的長度n 1 n 30 輸出 包含的黑暗字串的個數 樣例...

暗黑的字串

題目描述 乙個只包含 a b 和 c 的字串,如果存在某一段長度為3的連續子串中恰好 a b 和 c 各有乙個,那麼這個字串就是純淨的,否則這個字串就是暗黑的。例如 baacaaccbaaa 連續子串 cba 中包含了 a b c 各乙個,所以是純淨的字串 aabbccaabb 不存在乙個長度為3的...