• 306. 累加数


    累加数是一个字符串,组成它的数字可以形成累加序列。

    一个有效的累加序列必须至少包含 3 个数。除了最开始的两个数以外,字符串中的其他数都等于它之前两个数相加的和。

    给定一个只包含数字 '0'-'9' 的字符串,编写一个算法来判断给定输入是否是累加数。

    说明: 累加序列里的数不会以 0 开头,所以不会出现 1, 2, 03 或者 1, 02, 3 的情况。

    示例 1:

    输入: "112358"
    输出: true
    解释: 累加序列为: 1, 1, 2, 3, 5, 8 。1 + 1 = 2, 1 + 2 = 3, 2 + 3 = 5, 3 + 5 = 8
    示例 2:

    输入: "199100199"
    输出: true
    解释: 累加序列为: 1, 99, 100, 199。1 + 99 = 100, 99 + 100 = 199

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/additive-number
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

     1 public class Solution {
     2     private int len = -1;
     3 
     4     private boolean helper(String num, int i, int j){
     5         if (j == len && len != 1)
     6             return true;
     7         else if (j > len)
     8             return false;
     9         long a,b;
    10         String c;
    11         for (int m = j; m < len; m++) {
    12             for (int n = m+1; n < len; n++) {
    13                 String a0 = num.substring(i,m);
    14                 String b0 = num.substring(m,n);
    15                 a = Long.parseLong(a0);
    16                 b = Long.parseLong(b0);
    17                 if (a0.charAt(0) == '0' && a != 0 || b0.charAt(0) == '0' && b != 0)
    18                     continue;
    19                 c = String.valueOf(a+b);
    20                 if (c.length() > len - n)
    21                     break;
    22                 if (num.substring(n, c.length()+n).equals(c) && (c.length()+n == len || helper(num,m, n)))
    23                     return true;
    24             }
    25         }
    26         return false;
    27     }
    28 
    29     public boolean isAdditiveNumber(String num) {
    30         len = num.length();
    31         return helper(num, 0,1);
    32     }
    33 
    34     public static void main(String[] args) {
    35         boolean additiveNumber = new Solution().isAdditiveNumber("0");
    36         System.out.println("additiveNumber = " + additiveNumber);
    37     }
    38 }
  • 相关阅读:
    禁止select下拉框的其中某个选择项不能被选择
    jQuery 增加 删除 修改select option
    jquery ajax后台向前台传list 前台用jquery $.each遍历list
    转载 java枚举类型enum的使用 (原文地址:http://blog.csdn.net/wgw335363240/article/details/6359614)
    C#性能优化实践 资料整理
    MySql 优化 网上资料
    第06组 Alpha冲刺(4/6)
    第06组 Alpha冲刺(3/6)
    第06组 Alpha冲刺(2/6)
    第06组 Alpha冲刺(1/6)
  • 原文地址:https://www.cnblogs.com/yfs123456/p/11618755.html
Copyright © 2020-2023  润新知