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