计算要拆分的字符串的最大偶数长度

Posted

技术标签:

【中文标题】计算要拆分的字符串的最大偶数长度【英文标题】: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 就好了。

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

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

【参考方案2】:

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

【讨论】:

以上是关于计算要拆分的字符串的最大偶数长度的主要内容,如果未能解决你的问题,请参考以下文章

将 SQL Server 中的字符串拆分为最大长度,并将每个字符串作为一行返回

SAP abap 怎么拆分字符串

在c ++中拆分偶数字符串

MySQL 中如何计算一个索引的长度

Pandas处理dataframe的文本数据列:使用str属性获取数据列的字符串方法类split函数基于指定分隔符拆分数据列的内容为列表使用len计算每个列表的长度

#计算回文字符串最大长度模板题