fma*_*ark 6 python language-agnostic string algorithm abbreviation
我正在寻找一种算法,它将采用字符串向量v1并返回一个类似的字符串向量,v2其中每个字符串长度小于x字符且是唯一的.字符串v1可能不是唯一的.
虽然我需要接受ASCII v1,但我宁愿只[A-Za-z0-9]在需要插入新字符时插入字母数字字符().
显然这里有三个警告:
对于某些值的v1和x,没有可能的唯一v2.例如,当v1有37个元素时x == 1.
问题中指定的"类似"是主观的.字符串将是面向用户的,并且可能是短的自然语言短语(例如"颜色数").我希望人类能够尽可能容易地将原始地图映射到缩短的字符串.这可能意味着利用诸如dismvoweling等启发式方法.因为可能没有客观衡量我的相似性结构(字符串距离可能不会在这里最有用,尽管它可能),我对好的东西的判断将是任意的.该方法应适合英语 - 其他语言无关紧要.
显然这是一个(编程)语言无关的问题,但我对python中的实现很有好感(因为我发现它的字符串处理语言是直接的).
use*_*498 -1
def split_len(seq, length):
return [seq[i:i+length] for i in range(0, len(seq), length)]
newListOfString=[]
for item in listOfStrings:
newListOfString.append(split_len(item,8)[0])
Run Code Online (Sandbox Code Playgroud)
这将返回前八个字符。