Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // MARK: - Fuzzysearch. Проверить, является ли первая строка подпоследовательностью второй
- // если i прошел до конца строки и вышел (на последней итерации вышел за пределы), то true
- func fuzzySearch(_ word: String, _ text: String) -> Bool {
- var word = Array(word).map{String($0)}
- var text = Array(text).map{String($0)}
- var i = 0
- var j = 0
- while i < word.count && j < text.count {
- if word[i] == text[j] {
- i += 1
- }
- j += 1
- }
- return i == word.count
- }
- fuzzySearch( "car", "cartwheel") // true
- fuzzySearch( "cwhl", "cartwheel") // true
- fuzzySearch("cwhee", "cartwheel") // true
- fuzzySearch("cartwheel", "cartwheel") // true
- fuzzySearch("cwheeel", "cartwheel") // false
- fuzzySearch("lw", "cartwheel") // false
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement