gpt4 book ai didi

c# - 过滤掉重复字母并重新分配给菜单 alt 键可用字母的算法

转载 作者:太空狗 更新时间:2023-10-30 01:08:54 25 4
gpt4 key购买 nike

我有一个包含许多菜单的 WinForms 应用程序,每个菜单平均有 30 个菜单项。在任何给定的菜单中,都可以有多个以相同字母开头的单词。

目前,我使用一种简单的方法,通过在每个菜单项的开头添加一个符号来创建到每个项目的 alt 键映射。

我需要能够检测重复的键映射(起始字母)并将其重新分配给另一个字符;那还没有被采取。获胜的角色将是最接近单词乞求的角色。

菜单示例

  • 列表列表项
  • 新窗口
  • 保存文档
  • P打印
  • Print 预览

更理想的算法应该足够聪明,可以查看字符串中的下一个单词,并具有加法规则。如果我可以创建一组规则来模拟这样的菜单:

FireFoxMenu

我知道 fire fox 最有可能手动分配它们的映射 - 但我试图建设性地懒惰。

最佳答案

您可以将其视为 http://en.wikipedia.org/wiki/Hungarian_algorithm 的示例.在文章的语言中,将您的菜单项标题视为工作人员。您想要为每个 worker 分配一份工作,其中一份工作是一封来自 A-Z 的字母。将 worker 分配给一个字母(工作)的成本是该字母在菜单项中的索引。这最小化了索引的总和,因此如果第一个字母都不同,最好的解决方案是使用每个菜单项的第一个字母。

当然,字母通常比菜单项多。您可以通过发明虚拟菜单项来解决这个问题,对每个可能的字母分配给虚拟菜单项收取相同的费用。

关于c# - 过滤掉重复字母并重新分配给菜单 alt 键可用字母的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8222582/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com