We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 2ef0925 commit ae206e3Copy full SHA for ae206e3
316-remove-duplicate-letters.js
@@ -52,3 +52,27 @@ const removeDuplicateLetters = function(s) {
52
}
53
return String.fromCharCode(...aChNo)
54
55
+
56
+// another
57
58
+/**
59
+ * @param {string} s
60
+ * @return {string}
61
+ */
62
+const removeDuplicateLetters = function(s) {
63
+ const last = {}
64
+ for (let i = 0; i < s.length; i++) last[s.charAt(i)] = i
65
+ const added = {}
66
+ const stack = []
67
+ for (let i = 0; i < s.length; i++) {
68
+ const char = s.charAt(i)
69
+ if (added[char]) continue
70
+ while (stack.length && char < stack[stack.length - 1] && last[stack[stack.length - 1]] > i) {
71
+ added[stack[stack.length - 1]] = false
72
+ stack.pop()
73
+ }
74
+ stack.push(char)
75
+ added[char] = true
76
77
+ return stack.join('')
78
+}
0 commit comments