При попытке вычислить количество совпадений между двумя строками:
Во-первых, мне нужно сдвинуть строку с цифр от 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. Строка намного меньше той, для которой я на самом деле должна найти совпадения, поэтому неизвестно, что это за буквы на самом деле. Мне просто нужно найти способ сравнить индексы предыдущих строк с индексомсдвинутый.