У меня есть код, над которым я работаю, но он не выводится так же хорошо, как мне нужно. Я должен был составить свой собственный алгоритм для кода в python, который учитывает символы в вводах. Это похоже на стог сена в методе иглы, но я не должен использовать какие-либо методы сравнения текста, такие как count() и findall(). Я хотел бы, чтобы мой код подсчитывал символ по символу и не считал совпадающие буквы. Я ищу самую длинную общую подстроку. Вот мой код до сих пор, но он выводит все еще неправильно. Когда я ввожу «aaaaa» в поле String1 и «aa» в поле String 2, он выводит 1, но он должен выводить 2, потому что в «aaaaa» есть 2 «aa», без перекрытия.Подсчет общих символов между двумя строками в python
test1 = input("String1: ")
test2 = input("String2: ")
common = {}
if len(test1)<len(test2):
for letter in test1:
if letter in test2:
common[letter]= 1
else:
for letter in test2:
if letter in test1:
common[letter]= 1
print (len(common))
Можете ли вы привести больше примеров? –
Вы спрашиваете о [самой длинной общей подстроке] (https://en.wikipedia.org/wiki/Longest_common_substring_problem) или [подпоследовательности] (https://en.wikipedia.org/wiki/Longest_common_subsequence_problem)? –
Вы можете использовать 'set' решение из следующего: http://stackoverflow.com/questions/17666963/python-get-common-characters-from-strings – Kujira