diff --git a/solution/1600-1699/1647.Minimum Deletions to Make Character Frequencies Unique/README.md b/solution/1600-1699/1647.Minimum Deletions to Make Character Frequencies Unique/README.md index 478f0f9ca352f..7c3369cec6199 100644 --- a/solution/1600-1699/1647.Minimum Deletions to Make Character Frequencies Unique/README.md +++ b/solution/1600-1699/1647.Minimum Deletions to Make Character Frequencies Unique/README.md @@ -192,6 +192,35 @@ public: }; ``` +### **Rust** + +```rust +impl Solution { + #[allow(dead_code)] + pub fn min_deletions(s: String) -> i32 { + let mut cnt = vec![0; 26]; + let mut ans = 0; + + for c in s.chars() { + cnt[(c as u8 - 'a' as u8) as usize] += 1; + } + + cnt.sort_by(|&lhs, &rhs| { + rhs.cmp(&lhs) + }); + + for i in 1..26 { + while cnt[i] >= cnt[i - 1] && cnt[i] > 0 { + cnt[i] -= 1; + ans += 1; + } + } + + ans + } +} +``` + ### **Go** ```go diff --git a/solution/1600-1699/1647.Minimum Deletions to Make Character Frequencies Unique/README_EN.md b/solution/1600-1699/1647.Minimum Deletions to Make Character Frequencies Unique/README_EN.md index 7bb204ab3ed05..183ab42a7521d 100644 --- a/solution/1600-1699/1647.Minimum Deletions to Make Character Frequencies Unique/README_EN.md +++ b/solution/1600-1699/1647.Minimum Deletions to Make Character Frequencies Unique/README_EN.md @@ -170,6 +170,35 @@ public: }; ``` +### **Rust** + +```rust +impl Solution { + #[allow(dead_code)] + pub fn min_deletions(s: String) -> i32 { + let mut cnt = vec![0; 26]; + let mut ans = 0; + + for c in s.chars() { + cnt[(c as u8 - 'a' as u8) as usize] += 1; + } + + cnt.sort_by(|&lhs, &rhs| { + rhs.cmp(&lhs) + }); + + for i in 1..26 { + while cnt[i] >= cnt[i - 1] && cnt[i] > 0 { + cnt[i] -= 1; + ans += 1; + } + } + + ans + } +} +``` + ### **Go** ```go diff --git a/solution/1600-1699/1647.Minimum Deletions to Make Character Frequencies Unique/Solution.rs b/solution/1600-1699/1647.Minimum Deletions to Make Character Frequencies Unique/Solution.rs new file mode 100644 index 0000000000000..4344e5ee9f24c --- /dev/null +++ b/solution/1600-1699/1647.Minimum Deletions to Make Character Frequencies Unique/Solution.rs @@ -0,0 +1,24 @@ +impl Solution { + #[allow(dead_code)] + pub fn min_deletions(s: String) -> i32 { + let mut cnt = vec![0; 26]; + let mut ans = 0; + + for c in s.chars() { + cnt[(c as u8 - 'a' as u8) as usize] += 1; + } + + cnt.sort_by(|&lhs, &rhs| { + rhs.cmp(&lhs) + }); + + for i in 1..26 { + while cnt[i] >= cnt[i - 1] && cnt[i] > 0 { + cnt[i] -= 1; + ans += 1; + } + } + + ans + } +} \ No newline at end of file