自学内容网 自学内容网

【LeetCode】2506、统计相似字符串对的数目

【LeetCode】2506、统计相似字符串对的数目


一、哈希表+位运算

1.1 哈希表+位运算

每个字符串, 可用一个 int 表示. (每个字符 是 int 的一个位)
哈希表记录各 字符组合 出现的次数

步骤:

  1. 遇到一个字符串, 得到 mask
  2. 在 哈希表中找次数, 累加到答案中, 因为此字符串 和 哈希表中的所有字符串 都可组成 一对儿
  3. 再添加到哈希表中
// go
func similarPairs(words []string) (ans int) {
    cnt := map[int]int{} // k: mask, v: cnt
    for _, word := range words {
        mask := 0
        for _, 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

原文地址:https://blog.csdn.net/jiaoyangwm/article/details/144803585

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!