Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- func removeDuplicateLetters(_ s: String) -> String {
- var map = [Character : Int]() // char : count
- var diffMap = [Character : Int]()
- for char in s{
- map[char, default : 0] += 1
- }
- var visited = Set<Character>()
- var res = [Character]()
- // res.append("0")
- for char in s {
- map[char] = map[char]! - 1
- if !visited.contains(char) {
- // let last = res.last!
- while res.count > 0 && map[res.last!]! >= 1 && res.last! > char{ //要换
- let last = res.last!
- visited.remove(last)
- res.removeLast()
- }
- visited.insert(char)
- res.append(char)
- }
- }
- // res.removeFirst()
- return String(res)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement