zoukankan      html  css  js  c++  java
  • 关于变位词的一点总结和思考

    (1)《编程珠玑》中提到的一个问题:给定一个英文字典,找出其中的所有变位词集合。例如,“pots”、“stop”、“tops”互为变位词,因为每一个单词都可以通过改变其他单词中的字母的顺序来得到。

    解答:

    编程珠玑:sign对每一个单词排序,得到标识--->sort对标识排序--->squash输出结果

    我自己的想法:sign--->hash处理,每一个标识对应一个hash插槽--->输出结果

    (2)《剑指OFFER》中:给定两个单词,如何判断它们是不是变为词?

    解答:

    ACM解答:使用sort系统调用将两个单词分别按字母顺序排序,然后再用系统调用strcmp比较,如果为0则是变位词

    《剑指OFFER》的:创建一个数组实现简单哈希表,统计字符串中每个字符出现的次数:先扫描第一个字符串,然后在哈希表中统计对应的项+1,接下来扫描第二个字符串,没扫描到一个字符,在哈希表中对应的项-1,如果扫描完第二个字符串后,哈希表中的所有的值为0,那么这两个字符串就互为变位词。

  • 相关阅读:
    HDU1316 fib+高精度
    HDU1868
    HDU2586 LCA
    HDU1113 字符串处理
    HDU1115 几何+多边形重心
    HDU1124
    HDU1110 几何
    HDU1103
    HDU2670 DP
    linux 下查看机器是cpu是几核的
  • 原文地址:https://www.cnblogs.com/javaadu/p/11742646.html
Copyright © 2011-2022 走看看