Middle
Daha resmi isimlendirme: yaklaşık dize eşleştirme (yaklaşık eşleşmeyi bulma). İlk dizenin ikinci dizenin alt dizisi olup olmadığını kontrol etmeniz gerekir. Alt dizi, ilk diziyi ikinci diziden bazı karakterleri silerek elde edebildiğiniz zaman olur. Girdi: 'car', 'cartwheel' Çıktı: true Girdi: 'cwhl', 'cartwheel' Çıktı: true Girdi: 'cwhee', 'cartwheel' Çıktı: true Girdi: 'cartwheel', 'cartwheel' Çıktı: true Girdi: 'cwheeel', 'cartwheel' Çıktı: false Girdi: 'lw', 'cartwheel' Çıktı: false
sobes.tech yapay zeka
AI'dan gelen yanıt
Задача — проверить, является ли первая строка подпоследовательностью второй. Это значит, что все символы первой строки встречаются во второй в том же порядке, но не обязательно подряд.
Пример решения на 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
Идея: пройтись по обеим строкам двумя указателями. Если символы совпадают — сдвигаем указатель первой строки. В конце, если весь первый строка пройдена, значит она является подпоследовательностью второй.