我有一组符合以下约束的字符串
我想转换这些字符串,以便下面的新约束是有效的(而不是以前的约束)
假设初始字符串集如下所示
city, City, cIty, ciTy, citY, CIty, cITy, ciTY, CITy, cITY, CITY我有一个部分算法,它将这些字符串映射到以下
cit, cit1, cit2, cit3, cit4, cit5, cit6, cit7, cit8, cit9, cit10这是通过使用以下逻辑来完成的
使用上述方法,我能够将旧的字符串集映射到新的集合,并满足新的约束条件。
但是,如果原始集本身有任何由算法生成的字符串,则我的算法就会中断。
假设最初的字符串集是
city, cit1, cit2, City, cIty, ciTy, citY, CIty, cITy, ciTY, CITy, cITY, CITY, 在这种情况下,由于cit1和cit2已经存在于初始集合中,算法会中断(因为它会生成重复的cit1和cit2)。
有什么办法可以递归地处理这件事吗?
发布于 2015-03-28 14:50:54
我建议你这样做:
for each input string, s
if (result.contains(s))
result.add(s)
else
do
s = next(s)
while (result.contains(s))
result.add(s);其中next(s)被定义为
split s into [prefixPart, numberPart]
num = numberPart == null ? 0 : numberPart+1
prefixLength = Math.min(prefixPart.length, 5 - num.length)
return prefixPart.substring(0, prefixLength) + num即next("citY") = "citY0"和next("cit45") = "cit46"
https://stackoverflow.com/questions/29318359
复制相似问题