Я пытаюсь взять псевдокод из моего учебника и преобразовать его в функцию python. Псевдокод предназначен для создания таблицы сдвига для использования с сопоставлением строк Horspool.Создать таблицу сдвига для сопоставления строк в python из псевдокода
псевдо-код выглядит следующим образом:
ShiftTable(P[0..m - 1])
//Takes input pattern P[0..m-1] and alphabet of possible characters
//Produces output Table[0..size-1] indexed by alphabet's characters and filled with shift sizes computed by formula
for i = 0 to size - 1 do Table[i] = m
for j = 0 to m - 2 do Table[P[j]] = m - 1 - j
return Table
Мой код выглядит следующим образом:
def BuildShiftTable(pattern):
m = len(pattern)
alphabet = [i for i in string.ascii_lowercase]
print(alphabet)
for i in alphabet:
table[i] = alphabet[i]
for j in m - 2:
table[pattern[j]] = m-1-j
return table
Это, очевидно, не работает, но я пытаюсь понять, как сделать то, что псевдокод делает и превращает это в рабочий код, потому что я не совсем уверен, что первый цикл цикла в псевдокоде означает, взяв size-1 из списка Table, если он еще не был создан. Любая помощь приветствуется.