For example: "112358" is an additive number because the digits can form an additive sequence: 1, 1, 2, 3, 5, 8. 1 + 1 = 2, 1 + 2 = 3, 2 + 3 = 5, 3 + 5 = 8 "199100199" is also an additive number, the additive sequence is: 1, 99, 100, 199. 1 + 99 = 100, 99 + 100 = 199 Note: Numbers in the additive sequence cannot have leading zeros, so sequence 1, 2, 03 or 1, 02, 3 is invalid.
public class Solution { public boolean isAdditiveNumber(String num) { if(num == null || num.length() == 0) return false; int n = num.length(); for(int i = 1; i <= n/2; i++){ // len of x1 for(int j = 1; Math.max(i, j) + i + j <= n; j++) { // len of x2 if(isValid(i, j, num)) return true; } } return false; } public boolean isValid(int i, int j, String num){ if(i > 1 && num.charAt(0) == "0") return false; if(j > 1 && num.charAt(i) == "0") return false; String sum; Long x1 = Long.parseLong(num.substring(0, i)); Long x2 = Long.parseLong(num.substring(i, i+j)); for(int start = i + j; start < num.length(); start += sum.length()){ x2 = x1 + x2; // sum of x1 and x2, and became new x2 x1 = x2 - x1; // last x2 is new x1 sum = x2.toString(); if(!num.startsWith(sum, start)) return false; } return true; } }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/70097.html
摘要:為了減少無效遍歷,我們可以在尋找第一個(gè)數(shù)字和第二個(gè)數(shù)字的時(shí)候及時(shí)終止。我們可以知道第一個(gè)數(shù)字的長度不應(yīng)該超過字符串長度的一般,第二個(gè)數(shù)字的長度無法超過字符串長度減去第一個(gè)數(shù)字的長度。因此一旦遇到,在判斷完作為加數(shù)時(shí)是否合法后,直接跳出循環(huán)。 題目要求 Additive number is a string whose digits can form additive sequence....
摘要:描述累加數(shù)是一個(gè)字符串,組成它的數(shù)字可以形成累加序列。一個(gè)有效的累加序列必須至少包含個(gè)數(shù)。說明累加序列里的數(shù)不會(huì)以開頭,所以不會(huì)出現(xiàn)或者的情況。示例輸入輸出解釋累加序列為。 LeetCode 306. Additive Number Description Additive number is a string whose digits can form additive sequen...
摘要:題目解答不越界長度的當(dāng)可以走到后面沒有和了的時(shí)候,說明這個(gè)滿足條件直接可以知道這個(gè)是不是存在于中越界長度的越界長的度 題目:Additive number is a string whose digits can form additive sequence. A valid additive sequence should contain at least three numbers...
Additive Number Additive number is a string whose digits can form additive sequence. A valid additive sequence should contain at least three numbers. Except for the first two numbers, each subsequent ...
閱讀 3215·2021-11-19 09:40
閱讀 3010·2021-09-09 09:32
閱讀 799·2021-09-02 09:55
閱讀 1401·2019-08-26 13:23
閱讀 2414·2019-08-26 11:46
閱讀 1237·2019-08-26 10:19
閱讀 2065·2019-08-23 16:53
閱讀 1078·2019-08-23 12:44