Leetcode 842 將陣列拆分成斐波那契序列

2021-10-02 08:03:56 字數 931 閱讀 6212

給定乙個數字字串 s,比如 s = "123456579",我們可以將它分成斐波那契式的序列 [123, 456, 579]。

形式上,斐波那契式序列是乙個非負整數列表 f,且滿足:

0 <= f[i] <= 2^31 - 1,(也就是說,每個整數都符合 32 位有符號整數型別);

f.length >= 3;

對於所有的0 <= i < f.length - 2,都有 f[i] + f[i+1] = f[i+2] 成立。

另外,請注意,將字串拆分成小塊時,每個塊的數字一定不要以零開頭,除非這個塊是數字 0 本身。

返回從 s 拆分出來的所有斐波那契式的序列塊,如果不能拆分則返回 。

示例 1:

輸入:"123456579"

輸出:[123,456,579]

示例 2:

輸入: "11235813"

輸出: [1,1,2,3,5,8,13]

示例 3:

輸入: "112358130"

輸出:

解釋: 這項任務無法完成。

示例 4:

輸入:"0123"

輸出:解釋:每個塊的數字不能以零開頭,因此 "01","2","3" 不是有效答案。

示例 5:

1 <= s.length <= 200

字串 s 中只含有數字。

class solution 

else

ans.push_back(t);

bool b = dfs(s,i+1,"",str,s2);

if(!b) ans.clear();

else return true;}}

}return false;

}vectorsplitintofibonacci(string s)

};

leetcode 842 搜尋剪枝

這個題還真挺簡單的,值得記錄的是這個題要求的數的範圍在int內,但python的int函式其實是可以超過int範圍的,所以咱們需要判斷一下在 1 31 1範圍內,另外,可以利用這一點,只搜尋長度10以內的子串,是乙個小的剪枝技巧。第二個點也是乙個剪枝技巧,由於咱們需要先找到兩個數,如果第乙個數開頭是...

842 將陣列拆分成斐波那契序列

給定乙個數字字串 s,比如 s 123456579 我們可以將它分成斐波那契式的序列 123,456,579 形式上,斐波那契式序列是乙個非負整數列表 f,且滿足 0 f i 2 31 1,也就是說,每個整數都符合 32 位有符號整數型別 f.length 3 對於所有的0 i f.length 2...

字串拆分成陣列 842將陣列拆分成斐波那契數列

這個 星期六要考四級,真的是花36塊錢體驗下卷子。上次去華南理工比數學競賽,沒想到成功混了乙個一等獎 首先來看看題目 給定乙個數字字串 s,比如 s 123456579 我們可以將它分成斐波那契式的序列 123,456,579 形式上,斐波那契式序列是乙個非負整數列表 f,且滿足 0 f i 2 3...