如何快速找出单词的变位词
来源:互联网 发布:linux rpm位置 编辑:程序博客网 时间:2024/05/16 04:52
给定一个英语字典,找出其中的所有变位词的集合。例如,”pots”、”stop”和”tops”互为变位词,因为每一个单词都可以通过改变其他单词中字幕的顺序来得到
解决这个问题最直接的想法就是全排列给定的单词,对于得到的每一个字符串序列从字典中查找是否为一单词,如果是则输出否则测试下一个序列。对于短单词不失为一种实现方法,但是如果单词的长度很长,如”cholecystoduodenostomy”的一个变位词”duodenocholecystostomy”有22!种排列。这个数字大的惊人。
有没有一种简单快速的方法找出变位词呢?我们仔细观察得出,变位词就是原单词字母的重排,字母个数并没有改变,对其字母排序后的结果都是一样的,如”opst”。这样我们就可以以单词排序后的结果作为一个标识,具有同一标识的单词就互为同位词。
具体方法为:
1、 给字典中的每一个单词设定一个标识,该标识为单词的字母的有序序列。如”stop”的标识为”opst”,这样形成一个单词——标识对
2、 对单词标识对按照标识排序
这样具有同一标识的单词就互为变位词了
- 如何快速找出单词的变位词
- 找出单词的变位词
- 给定一个单词集合,找出可以相互转换的集合。比如abc bca cba都可以相互转换(变位词)
- 找出词典中的所有的变位词 --By LXW
- 在一个词典中找出所有的变位词
- 变位词快速分离
- 分类找单词集的变位词集java
- 查找字典中单词变位词 方法
- finding anagrams(颠倒字母而成的字) of a given word; 编程珠玑之如何找出一个单词的换位词; 如何找出字典中的兄弟单词
- finding anagrams(颠倒字母而成的字) of a given word; 编程珠玑之如何找出一个单词的换位词; 如何找出字典中的兄弟单词
- 问题:给定一个英语词典,找出其中的所有变位词集合。
- 438 Find All Anagrams in a String 找出字符串中所有的变位词
- 编程珠玑中关于一个单词的所有变位词的解决
- leetcode 相同字母组成的不同单词归为一类即所谓的变位词
- 变位词的实现
- (变位词)的操作
- C语言实现检查单词是否为变位词(相同字母的重新排列)
- 哈希表对字符串的高效处理6:判断两个单词是否为变位词
- linux的qos机制 - cgroup篇 (1)
- 【编程学习】大数进制转换
- 看C++primer的小收获
- 网络广告术语CPC、CPM、PPS、CPA、CTR、CPL
- POJ1837 Balance
- 如何快速找出单词的变位词
- 移动应用开发人员忌浮躁
- Android开发——时间获取
- 一道oracle试题
- PHP水印原理
- Java Android通过Http协议上传文件
- 虚拟化管理软件比较(Eucalyptus, OpenNebula, OpenStack, OpenQRM, XenServer, Oracle VM, CloudStack, ConVirt)
- poj3635
- <杂谈1002>HTML作为GUI前段,Java/NDK作为业务后端开发方式总结