11字串的個數

2021-06-19 04:29:18 字數 804 閱讀 7745

問題:

輸入:第一行有乙個整數n(0表示01串的長度;

輸出:輸出不含有「11」子串的這種長度的01串共有多少個,佔一行。

樣例: 2

2 3

輸出: 3

5

子集問題,窮舉出01串的所有情況,找出有11字串的串,加1。。但這樣做會超時。最好的辦法是fibonacci,以四位01串來說,

是三位01串和兩位01串的和。在三位串後面加0,在兩位串後面加01。

不能在兩位串後面加10,是因為三位串已經包含兩位串後面加1的所有情況,再加10會與前面重複。

fibonacci方法**:

#include

int main(void)

;scanf("%d", &n);

for(i = 4; i <= 40; i++)

a[i] = a[i - 1] + a[i - 2];

for(i = 0; i < n; i++)

return 0;

}子集方法**:

#include

int count, m, result[100];

void dfs(int sum)//sum 為結果陣列下標,從1開始

}if(flag == 0)

return ;

}result[sum] = 0;

dfs(sum + 1);

result[sum] = 1;

dfs(sum + 1);

}int main(void)

return 0;

}

1 1字串的旋轉

題目 給定乙個字串,要求將字串的前面若干個字元移到字串的尾部。如有字串 abcdef 將前3個字元移到字串尾部變成 defabc 寫乙個函式實現此功能。解法1 蠻力移位 比如將 a 移動到最後一位,就將 a 賦值給乙個臨時變數,然後把後面n 1個字元均向前移動一位 注意移動的時候由前向後依次進行,否...

1698 字串的不同子字串個數

題目描述 給定乙個字串 s,返回 s 的不同子字串的個數。字串的 子字串 是由原字串刪除開頭若干個字元 可能是 0 個 並刪除結尾若干個字元 可能是 0 個 形成的字串。示例 1 輸入 s aabbaba 輸出 21 解釋 不同子字串的集合是 a b aa bb ab ba aab abb bab ...

Day11 字串的排列

題目 輸入乙個字串,列印出該字串中字元的所有排列。你可以以任意順序返回這個字串陣列,但裡面不能有重複元素。leetcode原題鏈結 思路 itertools.permutations iterable,r none import itertools class solution def permut...