按相似度而不是按字母顺序排序
Sort by Similarity instead of Alphabetically
按字母顺序排序,例如在 Python 中使用 sorted()
将产生以下结果:
a
ab
aa
aab
如何才能实现以下目标?
a
aa
ab
aab
更具体地说,是否有一个约定俗成的词,或者是否需要实现自定义算法才能做到这一点?
遍历数组并创建一个新的 ArrayList。使用 loopString.compare(previousString);.
相应地添加到数组
确保字符串全部为小写或全部为大写。
由于 'a' 出现在 'b' 之前,它将按照您的要求执行。
这取决于您选择的编程语言等因素。例如,在 Java 中,您可以使用 Collections.sort(List<T> list, Comparator<? super T> c)
,为此您传递一个比较器,它可以做任何您想要做的事情,例如 return 基于相似性的比较值。在其他语言中,或者在自己实现排序算法时,您可以将标准值比较换成您自己的方法。
也就是说,我还是不明白你说的相似度是什么意思。据我所知,您想先按长度对字符串进行排序,然后再按给定长度的字母顺序排序。在这种情况下,您必须传递给上述方法的 Comparator
必须首先比较长度,如果它们相等,则比较两个字符串的值。
按字母顺序排序,例如在 Python 中使用 sorted()
将产生以下结果:
a
ab
aa
aab
如何才能实现以下目标?
a
aa
ab
aab
更具体地说,是否有一个约定俗成的词,或者是否需要实现自定义算法才能做到这一点?
遍历数组并创建一个新的 ArrayList。使用 loopString.compare(previousString);.
相应地添加到数组确保字符串全部为小写或全部为大写。 由于 'a' 出现在 'b' 之前,它将按照您的要求执行。
这取决于您选择的编程语言等因素。例如,在 Java 中,您可以使用 Collections.sort(List<T> list, Comparator<? super T> c)
,为此您传递一个比较器,它可以做任何您想要做的事情,例如 return 基于相似性的比较值。在其他语言中,或者在自己实现排序算法时,您可以将标准值比较换成您自己的方法。
也就是说,我还是不明白你说的相似度是什么意思。据我所知,您想先按长度对字符串进行排序,然后再按给定长度的字母顺序排序。在这种情况下,您必须传递给上述方法的 Comparator
必须首先比较长度,如果它们相等,则比较两个字符串的值。