Перебирать каждую букву в str1
, проверяя ее существование в str2
.Если он не существует, перейдите к следующей букве, если это так, увеличьте длину подстроки в str1
, которую вы проверяете в str2
, до двух символов и повторяйте, пока не будут найдены другие совпадения, или выперебрал str1
.
Это позволит найти все совместно используемые подстроки, но, как пузырьковая сортировка, вряд ли будет оптимальным, хотя и является базовым примером решения проблемы.
Примерно такПример псевдо-выхода:
pos = 0
len = 1
matches = [];
while (pos < str1.length()) {
while (str2.indexOf(str1.substring(pos, len))) {
len++;
}
matches.push(str1.substring(pos, len - 1));
pos++;
len = 1;
}