Я получаю пользовательскую строку от пользователя. Теперь мне нужно разработать кратчайший маршрут для нажатия этой строки на клавиатуре, которая включает в себя 9 кнопок.Самый короткий путь для ввода текста ввода с клавиатуры
Примечание:
- Буквы решения должны быть расположены в алфавитном порядке т.е., B, C, D, E, ...
- Каждое число должно по крайней мере включать в себя одну клавиатуру символов
Решение, если входной текст = 'Привет'
- A, B, C, D
- е, е, ж
- H, I, J, K
- л, м, н
- O, P, Q
- R, S, T
- U, V, W
- х, у
- г
Или
- а, б, в, г
- е, е, ж
- H, I, J, K
- л, м, н
- о
- р
- д
- г
- s, T, U, V, W, X, у, г
с этой клавиатуры мне нужно нажать 3,2,4,4,5 для т ype 'hello'
Итак, если вы хотите набрать «привет» с помощью этой клавиатуры, вам нужно всего лишь нажимать кнопки 5 кнопок, так как это наименьшее количество клавиш.
Я думаю, что этот вопрос решается с помощью жадных алгоритмов или алгоритмов обратного отслеживания.
@rene no, и это не важно –
Интересная проблема, но я думаю, что вопрос слишком общий, чтобы когда-либо быть полезным другим. – Yuck
@ Я не согласен: хотя конкретный ответ на этот конкретный вопрос, вероятно, был бы бесполезен для других, ответ, предлагающий хороший подход к проблеме, может иметь большую ценность. – dasblinkenlight