0

我的程序中有多项选择菜单,如下所示:

Which option do you want? (choose one)
    f: First option
    s: Second option
    t: Third option

用户然后按fs进行t选择。对于这个例子,我手动选择了字母,应该很明显。

但在某些情况下存在冲突:假设我有一个Fourth option- 我不能使用f. 明智的选择包括Fh,具体取决于 UX 理念。

有没有一种算法可以在给定字符串列表的情况下生成一个唯一的助记符来识别每个字符串?通过“助记符”,我的意思是选项应该建议字母(如在我的示例中),以便很容易记住哪个是哪个(而不是将所有内容映射到 a、b、c 或 x、y、z )。

正如我上面提到的,有多种方法可以做到这一点,具体取决于您的喜好:大写字母、第一个单词中的字母、次要唯一单词的字母等。对于这个问题,我并不真正关心这些,所以随意使用您自己的规则 - 只要算法产生合理的用户友好结果。

4

1 回答 1

1

我见过的基线算法如下:

  1. 选择第一个字母(如您的示例中所示)。跟踪您选择的字母。
  2. When the chosen letter is taken, pick the next letter if available.
  3. 如果没有更多字母,则按字典顺序选择一个(字母表中的第一个空闲字母)
  4. 如果没有更多字母,请不要选择任何内容,该选项将无法寻址。这对于也可点击的菜单是有意义的。

当然,您可以应用一些调整:

  • 您的终端/操作系统约定是否区分大写和小写?您可以在第 2 步之后和第 3 步之前使用它(如果没有更多可用的字母,请使用大写字母)。

  • 你能使用和检测alt, ctrl,win吗?

  • 您是否需要维护(例如s保存)预先分配的快捷方式?在第一步之前分配它们。

于 2015-12-30T15:24:46.737 回答