题目描述:
代码1:
class Solution:
def mostCommonWord(self, paragraph, banned):
"""
:type paragraph: str
:type banned: List[str]
:rtype: str
"""
list1=[]
listout=[]
paragraph=paragraph.lower()
for i in paragraph:
if(not i.isalpha() and i!=' '):
paragraph=paragraph.replace(i,'')
#paragraph.lower()
list1=paragraph.split()
length=len(list1)
k=0
while(k<length):
if(banned.count(list1[k])!=0):
list1.pop(k)
length-=1
continue
k+=1
for j in list1:
listout.append(list1.count(j))
return list1[listout.index(max(listout))]
总结:
paragraph=paragraph.replace(i,'')
#paragraph.lower()
这两句代码的作用完全不同,因为单纯的一句paragraph.lower()
并不会改变paragaph。
另外需要注意的是,在使用循环更新list(pop,append等)时需要注意,list的长度改变而循环边界条件并未改变可能会引起越界报错。如:
length=len(list1)
for i in list1
if(i=="0"):
list1.pop(i)
由于length还是之前list的长度,循环的上界超出了更新后的list 的长度,所以会发生越界。