-
Notifications
You must be signed in to change notification settings - Fork 0
/
stringCompressionI.js
40 lines (37 loc) · 974 Bytes
/
stringCompressionI.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
function stringCompressionI(s) {
// let strSet=new Set(s)
// let obj={}
// for (let i of strSet.values()){
// obj[i]=0
// }
// let keyArr=Object.keys(obj)
// for (let i=0; i<keyArr.length; i++){
// for (let j=0; j<s.length; j++){
// if (s[j]===keyArr[i]){
// obj[keyArr[i]]+=1
// }
// }
// }
// // for (let i=0; i<s.length; i++){
// // if (!obj[s[i]]){
// // obj[s[i]]=1
// // }
// // else{
// // obj[s[i]]+=1
// // }
// // }
// let str=""
// for (let k in obj){
// str+=k+obj[k]
// }
// return str.length<s.length ? str : s
let map=new Map()
for (let i=0; i<s.length; i++){
map.set(s[i], (map.get(s[i]) || 0) + 1)
}
let str=""
for (let k of map.keys()){
str+=k+map.get(k)
}
return str.length<s.length ? str : s
}