【发布时间】:2016-02-15 15:09:59
【问题描述】:
我的程序中有多项选择菜单,如下所示:
Which option do you want? (choose one)
f: First option
s: Second option
t: Third option
然后用户按f、s 或t 进行选择。对于这个例子,我手动选择了字母,应该很明显。
但在某些情况下存在冲突:假设我有一个Fourth option - 我不能使用f。明智的选择包括F、h 等,具体取决于用户体验理念。
有没有一种算法可以在给定字符串列表的情况下生成一个唯一的助记符字母来识别每个字符串?通过“助记符”,我的意思是选项应该建议字母(如在我的示例中),以便很容易记住哪个是哪个(而不是将所有内容映射到 a、b、c 或 x、y、z )。
正如我上面提到的,有多种方法可以做到这一点,具体取决于您的喜好:大写字母、第一个单词中的字母、次要唯一单词的字母等。对于这个问题,我并不关心这些,所以请随意使用您自己的规则 - 只要算法产生合理的用户友好结果。
【问题讨论】:
-
标记
hash因为我本质上是在要求一个哈希函数,只是有非常具体和有些不寻常的要求。 -
我认为您将不得不手动制定一组规则,例如 copy=c、cut=x、paste=v 和 this 具有最高优先级,然后是其他规则。最重要的是一致性,因此您必须同时查看所有菜单而不是孤立地查看,否则您最终可能会在不同位置为同一选项分配不同的字母。
标签: string algorithm hash language-agnostic user-friendly