Skip to content

Commit bdb5622

Browse files
authored
feat: add typescript solution to lc problem: No.1647.Minimum Deletions to Make Character Frequencies Unique (doocs#492)
1 parent 06792ad commit bdb5622

File tree

3 files changed

+60
-0
lines changed

3 files changed

+60
-0
lines changed

solution/1600-1699/1647.Minimum Deletions to Make Character Frequencies Unique/README.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@
5353

5454
<!-- 这里可写通用的实现逻辑 -->
5555

56+
哈希表 + 升序排序
57+
5658
<!-- tabs:start -->
5759

5860
### **Python3**
@@ -71,6 +73,27 @@
7173

7274
```
7375

76+
### **TypeScript**
77+
78+
```ts
79+
function minDeletions(s: string): number {
80+
let map = {};
81+
for (let c of s) {
82+
map[c] = (map[c] || 0) + 1;
83+
}
84+
let ans = 0;
85+
let vals: number[] = Object.values(map);
86+
vals.sort((a, b) => a - b);
87+
for (let i = 1; i < vals.length; ++i) {
88+
while(vals[i] > 0 && i != vals.indexOf(vals[i])) {
89+
--vals[i];
90+
++ans;
91+
}
92+
}
93+
return ans;
94+
};
95+
```
96+
7497
### **...**
7598

7699
```

solution/1600-1699/1647.Minimum Deletions to Make Character Frequencies Unique/README_EN.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,27 @@ Note that we only care about characters that are still in the string at the end
6161

6262
```
6363

64+
### **TypeScript**
65+
66+
```ts
67+
function minDeletions(s: string): number {
68+
let map = {};
69+
for (let c of s) {
70+
map[c] = (map[c] || 0) + 1;
71+
}
72+
let ans = 0;
73+
let vals: number[] = Object.values(map);
74+
vals.sort((a, b) => a - b);
75+
for (let i = 1; i < vals.length; ++i) {
76+
while(vals[i] > 0 && i != vals.indexOf(vals[i])) {
77+
--vals[i];
78+
++ans;
79+
}
80+
}
81+
return ans;
82+
};
83+
```
84+
6485
### **...**
6586

6687
```
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
function minDeletions(s: string): number {
2+
let map = {};
3+
for (let c of s) {
4+
map[c] = (map[c] || 0) + 1;
5+
}
6+
let ans = 0;
7+
let vals: number[] = Object.values(map);
8+
vals.sort((a, b) => a - b);
9+
for (let i = 1; i < vals.length; ++i) {
10+
while(vals[i] > 0 && i != vals.indexOf(vals[i])) {
11+
--vals[i];
12+
++ans;
13+
}
14+
}
15+
return ans;
16+
};

0 commit comments

Comments
 (0)