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,那么这两个字符串就互为变位词。

  • 相关阅读:
    DS博客作业04--图
    DS博客作业03--树
    DS博客作业02--栈和队列
    DS博客作业01--线性表
    C博客作业05--指针
    C语言博客作业04--数组
    C博客作业03--函数
    博客作业——循环结构
    C博客作业05-指针
    C博客作业04--数组
  • 原文地址:https://www.cnblogs.com/javaadu/p/11742646.html
Copyright © 2011-2022 走看看