leetcode966

本文介绍了一种拼写检查算法的实现,通过构建字典存储原始形式、小写形式及元音替换形式,以处理查询字符串,返回最接近的正确拼写建议。该算法能够处理大小写变化和元音字母的差异,为用户提供准确的拼写纠正。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 1 class Solution(object):
 2     def spellchecker(self, wordlist: 'List[str]', queries: 'List[str]') -> 'List[str]':
 3         wordlen = len(wordlist)
 4         wordict = {}#存原始形式
 5         wordict_lowercase = {}#存小写形式
 6         wordict_replace = {}#存替换形式
 7         for i in range(wordlen):
 8             word = wordlist[i]
 9             if word not in wordict:
10                 wordict.update({word:i})
11 
12             lowcase = wordlist[i].lower()
13             #if lowcase not in wordict_lowercase and lowcase != word:
14             if lowcase not in wordict_lowercase:
15                 wordict_lowercase.update({lowcase:i})
16 
17             altercase = ''
18             for j in range(len(lowcase)):
19                 c = lowcase[j]
20                 if c=='e' or c =='i' or c =='o' or c=='u':
21                     c ='a'
22                 altercase += c
23             if altercase not in wordict_replace:
24                 wordict_replace.update({altercase:i})    
25         '''        
26         print(wordict)
27         print(wordict_lowercase)
28         print(wordict_replace)
29         '''
30         result = list()
31         for i in range(len(queries)):
32             q = queries[i]
33             lowq = q.lower()
34 
35             alterq = ''
36             for j in range(len(lowq)):
37                 c = lowq[j]
38                 if c == 'e' or c == 'i' or c == 'o' or c =='u':
39                     c = 'a'
40                 alterq += c
41             if q in wordict:
42                 result.append(wordlist[wordict[q]])
43             elif lowq in wordict_lowercase:
44                 result.append(wordlist[wordict_lowercase[lowq]])
45             elif alterq in wordict_replace:
46                 result.append(wordlist[wordict_replace[alterq]])
47             else:
48                 result.append('')
49         return result

 

转载于:https://www.cnblogs.com/asenyang/p/10764590.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值