Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // MARK: - Количество подстрок без повторов символов
- // Дана строка символов. Найти количество пар индексов в строке і и j между которыми, включительно, нет повторяющихся символов
- // Для строки "aba" ответ 5: [0, 0] ("a"), [0, 1] ("ab"), [1, 1] ("b"), [1, 2] ("ba"), [2, 2] ("a")
- func numberOfSpecialSubstrings(_ s: String) -> Int {
- var s = Array(s).map{String($0)}
- var cnt = [String: Int]()
- var ans = 0
- var l = 0
- for r in 0..<s.count {
- let str = s[r]
- cnt[str, default: 0] += 1
- while cnt[str]! > 1 {
- cnt[s[l]]! -= 1
- l += 1
- }
- ans += r - l + 1
- }
- return ans
- }
- numberOfSpecialSubstrings("aba")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement