C# 移动示例-计算用户使用键盘输入字符串所需的最短时间

C# 移动示例-计算用户使用键盘输入字符串所需的最短时间,c#,C#,一部手机有12个输入键,“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“0”、“*”和“” 在标准文本输入模式下,每个键可用于输入字母表的字母和空格字符。 例如,要访问字母“b”,用户将按“2”键两次 用户按键至少需要100毫秒。 如果用户必须使用同一按键输入连续字符,则手机必须至少暂停0.5秒,才能接受下一次按键代表新字符 我想编写一个应用程序,它接受任何字符串,这些字符串可以使用C在网格中的键分配输入。 应用程序应该接受用户的输入,并计算用户使用键盘输入该字符串所需

一部手机有12个输入键,“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“0”、“*”和“”

在标准文本输入模式下,每个键可用于输入字母表的字母和空格字符。 例如,要访问字母“b”,用户将按“2”键两次

用户按键至少需要100毫秒。 如果用户必须使用同一按键输入连续字符,则手机必须至少暂停0.5秒,才能接受下一次按键代表新字符

我想编写一个应用程序,它接受任何字符串,这些字符串可以使用C在网格中的键分配输入。 应用程序应该接受用户的输入,并计算用户使用键盘输入该字符串所需的最短时间以及所需的键序列

例如:

输入字符串“Hello World”的最短时间是多少?需要什么键顺序? 我们如何设计应用程序,使分配给每个键的字符可以轻松地重新配置? 如何通过网页提供对相同功能的访问? 如果我计算正确1.6秒,435569753 有很多选择,我想到了一个:

var KeyMap = new Dictionary<char, List<char>>
             {
                 { '1', new List<char>(), },   // at least on my phone 1 has no characters assigned
                 { '2', new List<char> { 'a', 'b', 'c' } },
               ...
             };
基本上,手机上的每个按钮都映射到指定字符的列表。然后,您可以提供一些UI来配置字典,确保没有双重映射等

假设您使用的是Visual Studio:在网上查看ASP.NET MVC教程。周围有很多

您应该封装应用程序按钮映射的核心以及时间和序列的计算,以便可以将其用于任何您喜欢的UI