Advertisement
Alexxik

Untitled

Mar 18th, 2024 (edited)
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 0.90 KB | None | 0 0
  1. // MARK: - Fuzzysearch. Проверить, является ли первая строка подпоследовательностью второй
  2.  
  3. // если i прошел до конца строки и вышел (на последней итерации вышел за пределы), то true
  4.  
  5. func fuzzySearch(_ word: String, _ text: String) -> Bool {
  6.     var word = Array(word).map{String($0)}
  7.     var text = Array(text).map{String($0)}
  8.     var i = 0
  9.     var j = 0
  10.    
  11.     while i < word.count && j < text.count {
  12.         if word[i] == text[j] {
  13.             i += 1
  14.         }
  15.         j += 1
  16.     }
  17.     return i == word.count
  18. }
  19.  
  20. fuzzySearch( "car", "cartwheel") // true
  21. fuzzySearch( "cwhl", "cartwheel") // true
  22. fuzzySearch("cwhee", "cartwheel") // true
  23. fuzzySearch("cartwheel", "cartwheel") // true
  24. fuzzySearch("cwheeel", "cartwheel") // false
  25. fuzzySearch("lw", "cartwheel") // false
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement