Sobes.tech
Middle

Formellere Bezeichnung: ungefähre Zeichenkettenübereinstimmung (finde eine ungefähre Übereinstimmung). Es ist zu überprüfen, ob die erste Zeichenkette eine Teilfolge der zweiten ist. Eine Teilfolge ist, wenn man die erste Zeichenkette aus der zweiten durch Entfernen einiger Zeichen erhalten kann. Eingabe: 'car', 'cartwheel' Ausgabe: true Eingabe: 'cwhl', 'cartwheel' Ausgabe: true Eingabe: 'cwhee', 'cartwheel' Ausgabe: true Eingabe: 'cartwheel', 'cartwheel' Ausgabe: true Eingabe: 'cwheeel', 'cartwheel' Ausgabe: false Eingabe: 'lw', 'cartwheel' Ausgabe: false

sobes.tech KI

Antwort von AI

Задача — проверить, является ли первая строка подпоследовательностью второй. Это значит, что все символы первой строки встречаются во второй в том же порядке, но не обязательно подряд.

Пример решения на Go:

type void struct{}

func isSubsequence(s, t string) bool {
    i, j := 0, 0
    for i < len(s) && j < len(t) {
        if s[i] == t[j] {
            i++
        }
        j++
    }
    return i == len(s)
}

// Пример использования:
// fmt.Println(isSubsequence("car", "cartwheel")) // true
// fmt.Println(isSubsequence("cwheeel", "cartwheel")) // false

Идея: пройтись по обеим строкам двумя указателями. Если символы совпадают — сдвигаем указатель первой строки. В конце, если весь первый строка пройдена, значит она является подпоследовательностью второй.