给你一个单词a,如果通过交换单词中字母的顺序可以得到另外的单词b,那么定义b是a的兄弟单词。现在给你一个字典,用户输入一个单词,让你根据字典找出这个单词有多少个兄弟单词。
....
from itertools import tee,izip
from collections import defaultdict
def pairwise(iterable):
a, b = tee(iterable)
for elem in b:
break
return izip(a, b)
buf_array=[]
buf_no={}
key_from_id=0
def add_to_buf(word):
global key_from_id,buf_array
if len(word)==1:
pass
#TODO
for pos,pair in enumerate(pairwise(word)):
if len(buf_array)<pos+1:
buf_array.append(defaultdict(set))
pos_dict=buf_array[pos]
key=list(pair)
key.sort()
key="".join(key)
if key not in buf_no:
buf_no[key]=key_from_id
key_from_id+=1
key=buf_no[key]
pos_dict[key].add(word)
def find_in_buf(word):
global key_from_id,buf_array
if len(word)==1:
pass
#TODO
exist = []
for pos,pair in enumerate(pairwise(word)):
if len(buf_array)<pos+1:
return
pos_dict=buf_array[pos]
key=list(pair)
key.sort()
key="".join(key)
if key not in buf_no:
continue
key=buf_no[key]
if key not in pos_dict:
continue
exist.append(pos_dict[key])
count_dict=defaultdict(int)
for i_set in exist:
for i in i_set:
count_dict[i]+=1
result=[]
min_match = len(word)-3
for k,v in count_dict.iteritems():
if v>=min_match:
result.append(k)
return result
add_to_buf("1234")
add_to_buf("ABCD")
add_to_buf("CABD")
print find_in_buf("ACBD")
分享到:
相关推荐
在考研英语备考过程中,掌握相似单词的记忆技巧是提高词汇量的关键。这些单词往往在拼写、发音或意义上有所关联,容易混淆,因此需要通过对比学习来加深印象。 首先,我们来看一组与“适应”相关的词汇。"adapt"指...
正则表达式查找相似单词的方法是正则表达式应用的一个重要方面,其基本思想是通过定义特定的模式(pattern),来匹配那些具有相似特征的单词或字符串序列。 从上述文件中我们可以提取以下知识点: 1. 正则表达式...
Python查找相似单词的方法,涉及了利用Python的字符串操作技巧,尤其是针对单词排列组合的处理。这种方法可以帮助我们找到与给定单词在字母顺序上相似的其他单词,即兄弟单词。所谓兄弟单词,指的是通过重新排列单词...
3. **提高效率**:集中处理相似单词,避免重复劳动,节约时间,提高学习效率。 4. **应对考试**:考研英语尤其重视阅读理解能力,对比记忆法有助于提高阅读速度和准确性,从而在考试中取得好成绩。 总之,对比记忆...
总的来说,"2010相似易混单词记忆-李剑考研英语相似易混单词-对比记忆.doc"这份文档是考研英语复习的重要参考资料,它通过对比记忆法帮助考生系统地掌握和区分相似单词,提升词汇能力,从而在考试中取得更好的成绩...
笔记本条目中的词频-React计算一个给定单词的频率并在笔记本条目中找到它的相似单词(Levenshtein距离不超过1)。 该项目是通过引导的。可用脚本在项目目录中,可以运行:yarn start 在开发模式下运行应用程序。 ...
4. **交互式应用**:在IPython或Jupyter Notebook环境中,可以编写一个函数,接收用户输入的单词,然后返回相似单词列表,实现交互式体验。 在实际应用中,还可以对模型进行调整以优化性能,例如改变向量维度...
通过对比相似单词的不同,如"book"和"brook",用户能更容易地区分它们,避免混淆。这些APP会提供这类单词对比,引导用户有意识地进行区别记忆。 此外,语音记忆法同样被广泛运用。通过听音识词,用户可以建立单词...
为了优化性能,可以采用一些策略,如使用Trie数据结构存储词汇表,这样在查找相似单词时可以减少比较次数。另外,还可以考虑使用启发式方法,如Wagner-Fischer算法的改进版,以减少计算量。 在实际应用中,这样的字...
5. **音形义结合**:许多句子包含同音异义词或双关语,如pearls和pears,增强了记忆挑战,帮助学习者区分相似单词,提高听力和口语技能。 6. **难词与常见词搭配**:通过难词与常见词的组合,既能让学习者接触到更...
这通常涉及对错误单词的相似单词搜索,以及使用词频统计来优化建议。 UML(统一建模语言)是软件工程中用来描述系统设计的重要工具。在这个项目中,UML可能包括以下图表: 1. 类图:展示了程序中的类及其关系,如...
【考研英语相似易混单词】是针对考研英语复习的一个重要环节,主要针对的是考生在记忆单词过程中遇到的混淆和记忆难题。考研英语中,很多单词在拼写、发音或意义上存在相似性,容易导致考生在实际应用时混淆,进而...
3. 以前学过的相似单词与新单词混淆,如同音词、近音词、形似词、同义词等。 艾宾浩斯的遗忘曲线理论揭示了遗忘的规律: 1. 单词的大概形状和结构较难遗忘,但具体字母容易忘记,尤其是长词、难词、特殊发音的词。 ...
- **相似单词**: -it 如: **it** (它), **bit** (一点儿), **fit** (适合), **hit** (击中), **spit** (吐痰), **sit** (坐), **pit** (坑)。 - **注意**: -it 结尾的单词发音相似,但意义不同。 #### 4. **Hobby**...
- 对于不熟悉的词根,可以通过已知的相似单词来记忆。如词根“it”表示“go”,“exit”中的“it”就表示“go out”,所以“exit”是“出口”的意思。同样,“visit”中的“vis”来自“see”,剩余的“it”同样表示...
【发音相似的英语单词对比与理解】 在学习英语的过程中,我们常常会遇到一些发音相似但含义不同的单词。这些单词在口语交流中容易引起混淆,因此理解它们的区别至关重要。以下是一些例子,帮助我们区分这些易混词汇...
3. 如果单词不在词典中,找到所有相似单词并输出"单词x: 相似单词1 相似单词2 ...",若无相似单词,输出"u单词x"。 以上三个问题都涉及到基础的算法和数据结构知识,分别是多项式的操作、字符串处理和字符串相似度...
12. **观察记忆法**(大串联记忆法):找出相似单词,一起记忆,如ice、rice、nice之间的关系。 13. **对比记忆法**:学习同义词、反义词、同形异义词和同音异形异义词,如high和low,right和left。 通过这些方法...