跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 比较复杂的别名字典去重优化
未分類
4 9 月 2021

比较复杂的别名字典去重优化

比较复杂的别名字典去重优化

資深大佬 : alex321 8

有几万个别名字典,存在如下情形: {A:A1} {A1:A2} {A3:A4} {A2:A3} {B4:B3} {B1:B4} {B4:B} {B3:B2} {B2:B5}

想构造出如下结果: {A:(A1,A2,A3,A4)} {B:(B1,B2,B3,B4,B5)}

目前我想到的办法很傻瓜,多重遍历。想请教下有什么高效的法子呢?

大佬有話說 (5)

  • 資深大佬 : RecursiveG

    并查集

  • 資深大佬 : geelaw

    离线问题计算无向图的连通分量即可(比如 BFS ),在线问题用并查集。

  • 資深大佬 : whusnoopy

    有一个问题细节待明确,别名集合好理解,在同一个联通子图里就好,别名的 key 怎么定?最短?首次出现?看样例里 B 并不是在 Bx 里第一次出现的
    这个不管离线在线应该都是并查集更快,离线构建图的过程也是有时间空间开销的

  • 主 資深大佬 : alex321

    @whusnoopy #3 key 可以不定。给集合元组也可以的。
    (A,A1,A2,A3,A4)
    (B,B1,B2,B3,B4,B5)

  • 資深大佬 : whusnoopy

    @alex321
    那这就是一个标准并查集的问题了,先便利一遍构建并查集,再便利一遍按并查集结果输出。针对你的样例写了段 Python 代码
    https://gist.github.com/whusnoopy/c9b43dde396aa57f61318c09870d5517

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具