【问题标题】:How do I separate an int into substrings/sub-ints?如何将 int 分成子字符串/子整数?
【发布时间】:2018-09-24 18:13:39
【问题描述】:

我想将一个数字分成不同的数字。(例如 123456 -> 123,456 或 12,3456 或 123,45,6...等)。它们也必须以相同的顺序排列。所以我想的一种方法是先将数字的每个数字放入一个数组中。然后我会遍历数组并找到它们的每个组合。但我认为这种方法需要很长时间才能找到所有可能的组合,特别是如果数字可以拆分超过 2 次。有没有更有效的方法来做到这一点?

【问题讨论】:

  • 主要基于意见 许多好的问题会根据专家的经验产生一定程度的意见,但这个问题的答案往往几乎完全基于意见,而不是事实、参考资料或特定的专业知识。
  • @JFPicard 所以算法复杂度是基于你的意见?

标签: java arrays parsing split int


【解决方案1】:

会有更有效的方法吗?

没有。

会有 2n-1 个组合,例如对于 6 位数字,25 = 32 种组合。

可以这样想:数字之间的每个“空格”可以分开或不分开,真/假,1/0,即一个“位”,因此您可以使用 5 位数字确定拆分组合:

1 2 3 4 5 6
 ^ ^ ^ ^ ^
 0 0 0 0 0   ->  123456
 0 0 0 0 1   ->  12345,6
 0 0 0 1 0   ->  1234,56
  . . . .
 1 1 1 1 0   ->  1,2,3,4,56
 1 1 1 1 1   ->  1,2,3,4,5,6

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多