首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在文本文件中查找最长的单词

在文本文件中查找最长的单词
EN

Stack Overflow用户
提问于 2013-05-04 02:57:45
回答 6查看 13.3K关注 0票数 1

我已经创建了一个函数,用于在文本文件中查找最长的单词,并在可以由9个字母组成的文本文件中查找最长的单词。我是python的新手,我正在创建一个类似于倒计时的游戏。

我已经创建了一个函数来查找文本文件中最长的单词。我现在想要的是创建python代码来查找可以由9个字母组成的最长单词。

每个字母只能使用一次。因此,从“qugteroda”中,我应该被抹黑,愤怒,大胆,朗读,愤怒,读出。我使用的是python 2.2

代码语言:javascript
运行
复制
    def Words():
           qfile=open('dict.txt','r')
           longg=''
           for line in qfile:
           if len(line)>len(longg):
             longg=line
           return longg
EN

回答 6

Stack Overflow用户

发布于 2013-05-04 03:04:30

我会这样做:

代码语言:javascript
运行
复制
from collections import Counter

def find_words(valid_letters):
    valid_letters = Counter(valid_letters)

    with open('dict.txt', 'r') as handle:
        for word in handle:
            letters = Counter(word.strip())

            if valid_letters >= letters:
                yield word

longest_word = max(find_words('qugteroda'), key=len)

它的要点是你计算你的单词中有哪些字母。如下所示:

代码语言:javascript
运行
复制
>>> count_letters('test')
{'t': 2, 'e': 1, 's': 1}

然后检查这些字母是否都在您的有效字母字典中(确保计数也等于或小于允许的计数)。

然后,你只需要找到最长的单词。

要找到最长的单词组合,请创建一个递归函数,该函数构建符合字母约束的单词链。

票数 2
EN

Stack Overflow用户

发布于 2013-05-04 03:06:06

使用itertools获取排列:

代码语言:javascript
运行
复制
list(itertools.permutations("qugteroda")

对于列表中的每个元素,检查字典文件中是否存在该单词。

您可以在字典中检查Trie以实现快速查找。

票数 1
EN

Stack Overflow用户

发布于 2013-05-04 03:26:27

1/创建由字母组成的排序字符串:

代码语言:javascript
运行
复制
qugteroda ->  adegoqrtu
the_letters = 'adegoqrtu'

2/从word文件中的所有单词创建一个列表,该列表应该在开头具有最大长度的单词,在末尾具有较小的单词,这将加快搜索N个最大单词的速度。

例如:international, ragouted,facebook,outraged, outdare, outread, outrage,readout

这个单词列表将不会按原样包含单词,但包含单词的排序表示。将此search_dict存储在缓存或文件中以备将来使用。

例如:search_dict = ['aaeiilnnnortt' , 'adegortu' ,'abcefkoo','adegortu']

3/要找到N个最大的单词,只需循环遍历search_dict,并不断添加单词,这些单词是the_letters字符串中字符的子集。一旦找到N个单词,就可以退出循环。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16365807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档