Advertisement
HXXXXJ

316. Remove Duplicate Letters

Mar 24th, 2019
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 0.86 KB | None | 0 0
  1. func removeDuplicateLetters(_ s: String) -> String {
  2.         var map = [Character : Int]() // char : count
  3.         var diffMap = [Character : Int]()
  4.         for char in s{
  5.             map[char, default : 0] += 1
  6.         }
  7.         var visited =  Set<Character>()
  8.         var res = [Character]()
  9.         // res.append("0")
  10.         for char in s {
  11.             map[char] =  map[char]! - 1
  12.             if !visited.contains(char) {
  13.                 // let last = res.last!
  14.                 while res.count > 0 && map[res.last!]! >= 1 && res.last! > char{ //要换
  15.                     let last = res.last!
  16.                     visited.remove(last)
  17.                     res.removeLast()
  18.                 }
  19.                 visited.insert(char)
  20.                 res.append(char)  
  21.             }
  22.         }
  23.        
  24.         // res.removeFirst()
  25.         return String(res)
  26.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement