如何以更接近的匹配方式获取排序列表?

时间:2010-02-15 09:15:44

标签: algorithm tcl

可以使用哪种排序算法来获得具有给定字符串的更接近和近似的匹配列表 输入:

  1. 字符串列表
  2. tobesearch_str

1 个答案:

答案 0 :(得分:5)

我对你想做的事情的理解如下:

  1. 您有一个包含许多字符串的TCL列表
  2. 您的搜索字符串与列表中的任何字符串不完全匹配
  3. 您希望按列表中的字符串与搜索字符串的距离对字符串进行排序。
  4. 衡量两个字符串的接近程度的一种方法是edit or Levevshtein distance。 TCL wiki上有一个页面,它提供TCL implementaion of this algorithm。然后你可以做的是创建一个列表列表,其中每个子列表包含候选字符串及其与搜索字符串的距离。下面的代码显示了如何使用lsort命令对此列表进行排序:

    set myList [list  {AADD 3} {AABC 2} {AAAB 1} {DCBA 4}]
    puts $myList
    set sortedList [lsort -integer -index 1 $myList]
    puts $sortedList
    

    这导致以下输出:

    {AADD 3} {AABC 2} {AAAB 1} {DCBA 4}
    {AAAB 1} {AABC 2} {AADD 3} {DCBA 4}
    

    这是你所追求的那种或我误解了你想要做的事情吗?

相关问题