Предположим, что вы берете строки 'a' и 'z' и перечисляете все строки, которые находятся между ними в алфавитном порядке: ['a', 'b', 'c'. .. 'x', 'y', 'z']. Возьмите середину этого списка, и вы найдете «m». Так что это похоже на то, чтобы взять в среднем эти две строки.Среднее из двух строк в алфавитном/лексикографическом порядке
Вы можете расширить его до строк с более чем одним символом, например, средняя точка между 'aa' и 'zz' будет найдена в середине списка ['aa', 'ab', 'ac'. .. 'zx', 'zy', 'zz'].
Может ли быть где-нибудь метод Python, который это делает? Если нет, даже знание названия алгоритма поможет.
Я начал создавать свою собственную рутину, которая просто проходит через обе строки и находит середину первой различной буквы, которая, казалось, отлично работает в том, что «aa» и «az» были «am», но тогда это не получается на «cat», «doggie» midpoint, который он считает «c». Я попробовал Googling для «бинарной строки поисковой строки» и т. Д., Но не зная названия того, что я пытаюсь сделать здесь, мне не повезло.
Я добавил свое собственное решение, как ответ
Что вы будете делать, когда строки имеют разную длину? – Pillsy
Является ли используемый алфавит просто строчным a-z? – FogleBird
Хороший вопрос. Большая картина здесь заключается в том, что я пытаюсь разбить большие словари на примерно две разные части, не имея возможности заранее знать размер словарного списка. Я просто знаю первую и последнюю строку и должен сделать обоснованное предположение о том, что средняя точка выполняет двоичный поиск (они являются ключами движка Google в большой таблице). – Bemmu