Algorithm 解析名称的逻辑
我想解决这个问题,但我有点不确定如何正确构造这样做的逻辑。我得到了一个用户名列表,我被告知要为它找到一个提取的名称。例如,我将看到一个用户名列表,如下所示:Algorithm 解析名称的逻辑,algorithm,logic,Algorithm,Logic,我想解决这个问题,但我有点不确定如何正确构造这样做的逻辑。我得到了一个用户名列表,我被告知要为它找到一个提取的名称。例如,我将看到一个用户名列表,如下所示: jason dooley smith rob.smith kristi.bailey kristi.betty.bailey kristi.b.bailey robertvolk robvolk k.b.dula kristidula kristibettydula kristibdula kdula kbdula alexanderson
jason
dooley
smith
rob.smith
kristi.bailey
kristi.betty.bailey
kristi.b.bailey
robertvolk
robvolk
k.b.dula
kristidula
kristibettydula
kristibdula
kdula
kbdula
alexanderson
caesardv
joseluis.lopez
jbpritzker
jean-luc.vey
dvandewal
malami
jgarciathome
christophertroethlisberger
然后如何将每个用户名转换为提取的名称?我得到的唯一参数是保证每个用户名至少有一部分人名
比如说,克里斯蒂·贝利会变成克里斯蒂·贝利
alexanderson会变成Alex Anderson
所以,我看到的模式是,如果我看到一个句点,我会把它变成两个字符串,可能是名字和姓氏。如果我看到三个阶段,那么它将是第一阶段,中间阶段。我在寻找逻辑上遇到的问题是,当这个名字像alexanderson或jgarciathome一样聚集在一起时。如何将其转换为提取的名称?我想做一些事情,比如如果我看到两个辅音和一个元音排成一行,我会把它们的名字分开,但我认为这行不通
有什么想法吗?我会使用string.StartsWith方法和string.EndsWith方法,并确定每个方法的最大重叠。只要超过2个字符,就称之为通用名称。根据通用名称将它们排序到bucket中。这是一个幼稚的实现,但这就是我要开始的地方 例如:
string name1 = "kristi.bailey";
string name2 = "kristi.betty.bailey";
// We've got a 6 character overlap for first name:
name2.StartsWith(name1.Substring(0,6)) // this is true
// We've got a 6 character overlap for last name:
name2.EndsWith(name1.Substring(7)) // this is true
嗯 请您发布预期的输出,我没有得到这个问题的输出。我怀疑可能没有一个答案可以解决像这样的所有问题。因为可能只有一些用户名是无法识别的。不过我正在努力找出最好的方法。你有亚历山大和贾卡夏家的字典可供参考吗?这是办不到的。看看你的清单:凯撒,凯撒是你的名字,但你对DV没有太多的理解。杰森、史密斯和马拉米只是名字。手动操作,或将工作发布给在线承包商。alexanderson是否应该与Alex Anderson或Alexander Son或甚至Alexa N Derson协商?克里斯蒂杜拉是克里斯蒂杜拉还是克里斯蒂杜拉?你的许多例子模棱两可。也许对提取的名称的精确定义可能会有用……你对开头和结尾的意思有点困惑。你能举个例子吗?像那样。最大索引值可以通过算法来确定。我刚刚发现,在这个问题中,您不能将任何名称与以前找到的任何名称相关联。你有没有其他办法解决这个问题?