有两个方法:
使用列表的count方法,因为count方法可以做对象内的元素进行出现次数叠加计算
list1=[1,2,3,4,4,5,6,7]list1.count(1) #结果为1list1.count(4) #结果为2for i in list1: if list1.count(i)>=2: print('该元素%s重复'%i)#结果:该元素4重复该元素4重复 #因为迭代了两次4所以有两次输出,功能是实现了,但是却打印了两次,有点不理想2.借用工厂函数set()把对象转为集合和列表的copy方法(浅复制),集合会默认把重复元素去掉
list1=[1,2,3,4,4,5,6,7]list2=list1.copy() #为了不破坏原数据,临时浅复制给变量list2list3=list(set(list2)) #使用set()函数将list2转为集合去掉重复元素又用list()转回列表 for i in list3: #对无重复元素的列表list3迭代 if i in list2: list1.remove(i) #当list3内的元素存在于list2中,则把其元素从list2中删除,最后就会留下重复元素print('list1:%s中的重复元素有:%s'%(list1,list2)) #组后输出原数据list1和最终结果list2#结果:list1:[1, 2, 3, 4, 4, 5, 6, 7]中的重复元素有:[4] #效果实现了,也没问题,就是变量使用有点多。看你选择了 #!/usr/bin/env python import sys str = True while (str): dig = int(input()) if dig 100: print 'please input mun between 0~100' elif dig = 90: print 'A' elif dig = 80: print 'B' elif dig = 70: print 'C' elif dig = 60: prin...题目:判断一个字符串是否包含重复字符。例如good则包含,abc则不包含。
分析:哈希法。
code:
(1)
strs = 'Good'
hashTable = dict()
listStrs = list(strs)
i = 0
while i <len(strs):
if listStrs[i] in hashTable:
print("有重复字符")
break
else:
hashTable[listStrs[i]] = None
i += 1
if i >= len(strs):
print("没用重复字符")
break
程序运行结果:
有重复字符
(2)
def longest_repetition(chars):
if len(chars) is None or len(chars) <= 1:
return (chars, len(chars))
result = [1] * len(chars)
for left in range(len(chars) - 1):
for right in range(left + 1, len(chars)):
if chars[left] == chars[right]:
print("a")
result[left] += 1
else:
print("aa")
break
#return result
return (chars[result.index(max(result))], max(result))
if __name__ == "__main__":
txt = 'banaaana'
print(longest_repetition(txt))
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)