【LeetCode】2506、统计相似字符串对的数目
文章目录
- 一、哈希表+位运算
- 1.1 哈希表+位运算
- 二、多语言解法
一、哈希表+位运算
1.1 哈希表+位运算
每个字符串, 可用一个 int 表示. (每个字符 是 int 的一个位)
哈希表记录各 字符组合 出现的次数
步骤:
- 遇到一个字符串, 得到 mask
- 在 哈希表中找次数, 累加到答案中, 因为此字符串 和 哈希表中的所有字符串 都可组成 一对儿
- 再添加到哈希表中
// go
func similarPairs(words []string) (ans int) {cnt := map[int]int{} // k: mask, v: cntfor _, word := range words {mask := 0for _, c := range word {mask |= 1 << (c - 'a')}ans += cnt[mask]cnt[mask]++}return
}
二、多语言解法
C p p / G o / P y t h o n / R u s t / J s / T s Cpp/Go/Python/Rust/Js/Ts Cpp/Go/Python/Rust/Js/Ts
// cpp
// go 同上
# python
// rust
// js
// ts