@lena_tihonova_bl

Как найти общие части у двух строк?

Конечно, подобных вопросов задавалось несчитанное количество, но, как по мне, у меня немного другая ситуация - нужно находить как минимум 2 общих символа, а не 1; так ещё и сделать это на нескольких участках.

Я перепробовал несколько вариантов для своей ситуации, но все они не подошли, из-за чего попробовал создать свой метод:
const one = fs.readFileSync(path.join(__dirname, "uploads", "sequence (1).txt")).toString();
const two = fs.readFileSync(path.join(__dirname, "uploads", "sequence (2).txt")).toString();

let result, data = "";

for (let i = 0; i < one.length; i += 2) {
    if (one[i] == two[i] && one[i + 1] == two[i + 1]) {
        result += one[i] + one[i + 1];
        data += " " + i;
    }
}

console.log(result, data);

Способ ниочёмный, потому что for прыгает через каждые два символа, проверяя их на совпадение. Но если будет, например, ситуация, когда есть две строки: "1112" и "1113", то в результате я получу не "111", а "11", ведь for посмотрит первые 2 символа, потом перейдёт на сравнение следующей пары - "12" и "13".

Конечно, можно сделать для i шаг всего в 1 единицу, однако тогда он, как вы понимаете, начнёт выводить повторяющиеся символы в ответ, так как будет захватывать конец предыдущей пары в каждой итерации.

Подскажите, пожалуйста, как можно решить проблему?

* на переменную data внимания не обращайте.
  • Вопрос задан
  • 86 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
summer Ярославль
от 100 000 до 140 000 ₽