【问题标题】:Calculate max even lengths of a string to be split计算要拆分的字符串的最大偶数长度
【发布时间】:2015-03-01 01:23:34
【问题描述】:

我知道我想要什么,但我不知道这是否有技术名称或如何计算它。

假设我有一个字符串:

ABCDEFGHI

这个字符串可以被平均分成每个子字符串 3 个字符的“MAXIMUM”。

基本上,我正在尝试找出如何将字符串平均拆分为其最大子长度。一个 25 个字符的字符串可以平均分成 5 个部分,每个部分包含 5 个字符。如果我试图将它分成 4 或 6 块,我会得到一个奇数长度的字符串(一个大小与其他字符串不同的字符串)。

  • 9 个字符的字符串只能拆分为 3 段,每段 3 个字符。
  • 10 个字符的字符串只能分成 2 段,每段 5 个字符。
  • 25 个字符的字符串只能拆分为 5 段,每段 5 个字符。
  • 15 个字符的字符串可以分成 3 段,每段 5 个字符或 5 段,每段 3 个字符。
  • 11 个字符的字符串不能拆分,因为一个字符串总是比另一个大。

那么我该怎么做呢?我曾想过使用平方根,但这不适用于“10”个字符的字符串。适用于 9 和 25 就好了。

有什么想法吗?这种东西有技术名称吗?我想到了“最大公约数”,但我不太确定。

【问题讨论】:

    标签: c++ string split


    【解决方案1】:

    好吧...让我看看...我认为如果我做对了,您想验证某个数字(字符串的长度)是否为素数:)

    第一个想法是这样的: 1)获取字符串的长度,创建一个循环,将字符串的长度除以从 2 到(字符串长度/2)的所有数字[您需要检查这(字符串长度/2)是否是一个整体编号,如果不是,请调整它;)] 2)如果至少有一个数字除以它,bam。 (您通过验证除法后是否有余数来检查这一点) 3)如果没有,你得到了一个素数。抱歉,连除法都没有。

    当然,对于很长的字符串,这种方法不会很快……只是一个想法。

    【讨论】:

      【解决方案2】:

      它只是关于素数和合数,一个基本的数学概念。你需要的算法是Primality Test

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-01-31
        • 1970-01-01
        • 2015-09-07
        • 2011-02-07
        • 2022-11-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多