Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String &引用;合并“;算法名称/实现_String_Algorithm - Fatal编程技术网

String &引用;合并“;算法名称/实现

String &引用;合并“;算法名称/实现,string,algorithm,String,Algorithm,不太清楚如何描述这个,但我有一个我喜欢玩的文字游戏,我想作为一个计算机程序来实现 基本要点是查看字母(A=1..Z=26)的值,并将字母合并到尽可能少且彼此最接近的位置 例如: s t a c k 求和 19 + 20 + 1 + 3 + 11 = 54 查找最少的字母数: ceil(54/26) = 3 选择彼此最接近的字母 54/3 = 18 要显示的字母应为rrr 这恰好是一个简单的例子。当您需要,比如说,rrs(如果您的初始字符串是“一个堆栈”),它会是什么样子 这已经有一个我可

不太清楚如何描述这个,但我有一个我喜欢玩的文字游戏,我想作为一个计算机程序来实现

基本要点是查看字母(A=1..Z=26)的值,并将字母合并到尽可能少且彼此最接近的位置

例如:

s t a c k
求和

19 + 20 + 1 + 3 + 11 = 54
查找最少的字母数:

ceil(54/26) = 3
选择彼此最接近的字母

54/3 = 18
要显示的字母应为
rrr

这恰好是一个简单的例子。当您需要,比如说,
rrs
(如果您的初始字符串是“一个堆栈”),它会是什么样子


这已经有一个我可以查找和实现的名称了吗?

我想你的问题可以归结为:给定
n
k
,查找数字
r1
r2
,…,
rk
,这样
和(r1+r2+…+rk)=n
max(r1,r2,…,rk)-min(r1,r2,…,rk)
尽可能小

解决方案是选择
r=floor(n/k)
,并将
n mod k
的数字设置为
r+1
,其余的
r

例如,如果
n=55
k=3
(您的示例),我们有
floor(55/3)=18
,而
55 mod 3
1
,因此解决方案是
19,18,18


剩下的就是在数字和字母之间转换。

我认为你的问题归结为:给定
n
k
,找到数字
r1
r2
,…,
rk
,这样
和(r1+r2+…+rk)=n
max(r1,r2,…,rk)-min(r1,r2,…,rk)
尽可能小

解决方案是选择
r=floor(n/k)
,并将
n mod k
的数字设置为
r+1
,其余的
r

例如,如果
n=55
k=3
(您的示例),我们有
floor(55/3)=18
,而
55 mod 3
1
,因此解决方案是
19,18,18


剩下的就是数字和字母之间的转换。

还没有编码出来,但是想要验证它还会给出一个压缩列表,比如
ssttt
(如果总数是98)还没有编码出来,但是想要验证它还会给出一个压缩列表,比如
ssttt
(如果总数是98)