Алгоритм для генерации буквенной строки, которая находится в алфавитном порядке между двумя другими строками? - PullRequest
6 голосов
/ 30 июля 2010

Проблема, которую я пытаюсь решить: учитывая, что у вас есть две разные строки, состоящие из строчных букв от a до z, найдите строку между двумя строками, чтобы всегда можно было найти дополнительные промежуточные строки.

Подробнее:

Учитывая, что «a» предшествует «b» в алфавитном порядке, существует бесконечное количество строк между «a» и «b», если сортировать их по словарю так: 'ab', 'aba' и т. д. Однако между всеми строками нет бесконечного числа строк - между 'a' и 'aa' нет ничего. Кроме того, между «a» и «aaa» существует только одна промежуточная строка «aa».

Что такое алгоритм, который может найти строку X, расположенную в алфавитном порядке между «a» и «b», которая также удовлетворяет условию, что между «a» и X имеется бесконечное количество строк, а также X и «b»

Ответы [ 2 ]

4 голосов
/ 30 июля 2010

при условии, что можно вставить бесконечное число строк между двумя строками.

Если нижняя строка короче, добавьте столько «а», чтобы сделать длину равной, затем добавьте «b» ксредняя строкаЕсли верхнее слово короче, сделайте среднюю строку равной нижней строке и добавьте z к средней строке.Если две строки имеют одинаковую длину, используйте любой из методов.

1 голос
/ 30 июля 2010

Вы указали все, что вам нужно знать, чтобы найти решение. По существу, конечное число строк существует только в том случае, если одна строка является префиксом другой, а остальные - строкой «a».

В противном случае вы можете найти бесконечное количество промежуточных строк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...