Нахождение поворота строки в другой строке, как в кроссворде - PullRequest
0 голосов
/ 16 апреля 2020

Давайте предположим, что у меня есть простая строка, такая как hello, и мне нужно проверить, содержится ли она в другой строке, такой как

one two three\n
abcdefghieklm\n
hello world. \n
qwertyuiolpas\n
mnbvcxzasofsd\n

, которая может содержать ее в горизонтальной или вертикальной плоскости, например кроссворды.

function findString(s, block) {
    return findHorizontal(s, block) || findVertical(s, block) || findDiagonal(s, block);
}

function findHorizontal(s, block) {
    var lines = block.split("\n");
    var found = false;
    lines.forEach(line => {
        if (line.includes(s)) {
            found = true;
        }
    });
    return found;
}

function findVertical(s, block) {
    var lines = block.split("\n");
    var i = Math.max(...lines.map(line => line.lenght()));
    var j = lines.lenght();
    var k = 0;
    var l = 0;
    while (k < j) {
        var m = 0;
        while (l < i) {
            var line = lines.get(k);
            var letter = line.charAt(l);
            if (letter = s.charAr(m)) {
                m = m + 1;
            } else {
                m = 0;
            }
            if (m = s.lenght()) {
                return true;
            }
            l = l + 1;
       }
       k = k + 1;
    }
}

Пока у меня есть горизонтальное правое и вертикальное, оно не всегда работает, и я не знаю, есть ли кто-нибудь, кто может видеть, что не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...