Функціональний блок SIMILAR_TEXT

Функціональний блок SIMILAR_TEXT обчислює подібність двох рядків.

Обчислення подібності двох рядків відбувається за методом, описаним у Programming Classics: Implementing the World's Best Algorithms by Oliver (ISBN 0-131-00413-1). Зверніть увагу, що ця реалізація не використовує стек, як у псевдокоді Олівера, але використовує рекурсивні виклики, які можуть покращити продуктивність (але не обов'язково). Також зверніть увагу, що складність цього алгоритму становить O(N³), де N - довжина найдовшого рядка.

Вхід STR1

Вхід визначає перший рядок, який потрібно порівняти.

Вхід STR2

Вхід визначає другий рядок, який потрібно порівняти.

Вихід SIM

Вивід повертає кількість збіжних символів у обох рядках.

Кількість збіжних символів обчислюється шляхом пошуку найдовшого першого спільного підрядка і повторення цього рекурсивно для префіксів та суфіксів. Довжини всіх знайдених спільних підрядків сумуються.

Вихід PERCENT

Вивід повертає подібність у відсотках як число з рухомою комою. Для цього результат ділиться на середнє арифметичне довжин вказаних рядків і множиться на 100.