Сдвиг строки и поиск количества индексов, соответствующих каждому сдвигу строк - PullRequest
0 голосов
/ 09 октября 2019

При попытке вычислить количество совпадений между двумя строками:

Во-первых, мне нужно сдвинуть строку с цифр от 1 до 5 и рассчитать количество совпадений между каждой сменой, если число совпаденийбольше, чем раньше, помните, что shift # в противном случае используйте предыдущий. Соответствие будет основано на том, соответствует ли символ индекса в предыдущей строке символу того же индекса в строке после

original string: ABCDZZ
shift 1:          ABCDZ  match = 1 (index 4,"ABCDZ" is the new string, original shifted by 1)
shift 2:           ABCD  match = 0 ("ABCD" is the new string, original shifted by 2)
shift 3:            ABC  match = 0 ("ABC" is the new string, original shifted by 3)
shift 4:             AB  match = 0 ("AB" is the new string, original shifted by 4)
shift 5:              A  """

Таким образом, мой вывод будет сдвигом 1, так как у него был самый большой #из матчей. Делать это вручную довольно просто, но у меня возникают проблемы с циклом for. Главным образом, как получить цикл for для повторения сравнения индекса каждой новой строки? Это более эффективно или имеет смысл разрезать строку в зависимости от количества смен? Если бы кто-нибудь мог помочь даже с помощью только псевдокода для этого, я не уверен, что моя логика верна, когда я делаю это. Есть ли способ образно создать две строки и сравнить их таким образом, потому что индексы каждой строки не будут даже выровнены, если я не ставлю пробел в качестве заполнителя каждый раз, когда я сдвигаюсь.

Редактировать: я думал разбить строку на список символов, а затем сравнить индекс с «новой» строкой, которая будет списком [: - 1] и списком [0, »], по существу создаваязаполнитель в качестве пробелов в сдвиге, а затем -1 для удаления последних символов. Но в дальнейшем я должен использовать «новую» строку, поэтому я не уверен, как сохранить эти текущие изменения, все еще используя переменные вцикл for. Строка намного меньше той, для которой я на самом деле должна найти совпадения, поэтому неизвестно, что это за буквы на самом деле. Мне просто нужно найти способ сравнить индексы предыдущих строк с индексомсдвинутый.

...