Advertisement
Alexxik

Untitled

Mar 19th, 2024
286
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 0.86 KB | None | 0 0
  1. // MARK: - Количество подстрок без повторов символов
  2.  
  3. // Дана строка символов. Найти количество пар индексов в строке і и j между которыми, включительно, нет повторяющихся символов
  4. // Для строки "aba" ответ 5: [0, 0] ("a"), [0, 1] ("ab"), [1, 1] ("b"), [1, 2] ("ba"), [2, 2] ("a")
  5.  
  6.  
  7. func numberOfSpecialSubstrings(_ s: String) -> Int {
  8.     var s = Array(s).map{String($0)}
  9.    
  10.     var cnt = [String: Int]()
  11.     var ans = 0
  12.     var l = 0
  13.    
  14.     for r in 0..<s.count {
  15.         let str = s[r]
  16.         cnt[str, default: 0] += 1
  17.         while cnt[str]! > 1 {
  18.             cnt[s[l]]! -= 1
  19.             l += 1
  20.         }
  21.         ans += r - l + 1
  22.     }
  23.    
  24.     return ans
  25. }
  26.  
  27. numberOfSpecialSubstrings("aba")
  28.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement