‘壹’ python语言,s = "abcd1234",find()函数可以在字符串中搜索子串...
没有问题,s.find("cd")是返回"cd"在s中出现的最小的index(序号,从0开始)
如果要统计出现的次数,可以用s.count("cd"),结果为1
‘贰’ python找出字符串的重复两次的字符
a=int(input('请输入'))
list=[]
sum=[]
for i in range(a):
b=input('请输入数据')
list.append(b)
for i in range(a): #这个是为了循环多次,保证count<2的数值全部取出来,因为在
for i in list:
if list.count(i)<2: #举个例子:1,3,3,4,5则在这里得出的list为3,3,5,因为 count<2的
list.remove(i) #数有1,4,5,remove()删除的是该条件下的第一个符合该条件 的 值,所以5
else: #删除不了,所以要循环多次
pass
for i in list:
sum.append(i)
for i in sum:
for j in sum:
if i==j:
sum.remove(i)
else:
print('没有重复的值')
print(sum)
运行结果为
请输入5
请输入数据1
请输入数据3
请输入数据3
请输入数据5
请输入数据2
['3']
这你看一下,如果有看不懂的我再跟你说一下,关键是思路
‘叁’ 用python找出一个a.txt文件中的重复数据,并将重复数据输出成另一个b.txt文件中
这里首先打开 a.txt 读取每一行,把每一行的内容作为字典的 key,然后字典的 value 记录的是重复行出现的次数,d.get 就是取目前的字典的行出现次数的值,默认为 0 就是没有出现,每次出现 +1
然后循环这个字典,如果 key 对应的 value 大于 1 表示重复出现过,就把这个内容写到 b.txt
‘肆’ python找出列表元素重复个数和重复值
输出列表元素重复个数
def get_element(data):
dic = {}
i = 0
while i < len(data):
if data[i] in dic:
"""
循环查找列表元素,如果一个元素出现一次,value就等于1,多次出现,value就增加
"""
dic[data[i]] += 1
else:
dic[data[i]] = 1
i += 1
for j, k in dic.items():
if k > 1:
print('data数组中重复的元素有%d,它的个数是%d个'%(j,k))
print(dic)
my_list =[1,2,3,4,2,4,2,3,4,5,6,23,23,32]
get_element(my_list)
‘伍’ 459. 重复子字符串(Python)
难度:★☆☆☆☆
类型:数组
给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。
示例 1:
输入: "abab"
输出: True
解释: 可由子字符串 "ab" 重复两次构成。
示例 2:
输入: "aba"
输出: False
示例 3:
输入: "abcabcabcabc"
输出: True
解释: 可由子字符串 "abc" 重复四次构成。 (或者子字符串 "abcabc" 重复两次构成。)
这里我们观察到一个现象,对于一个字符串s,我们将两个该字符串连接成一个更长的字符串(s_double),该字符串中至少包含两个s子串,如果s可以由多个重复单元构成,那么合并后的字符串中一定包含超过两个s子串(可重叠),例如,两个"abab"组成的"abababab"中包含3个"abab",而两个"aba"组成的"abaaba"则只包含两个"aba",根据这个原理,我们只需要统计s+s中s(可重叠)出现的次数,并与2比较即可。
这里为了简化计算,我们把s+s的首尾两端字符去掉,这样就只需要查看s是否在剩余的字符串中即可。编码时通过索引范围[1:len(s)*2-1]起到去掉首尾两端字符的效果。
如有疑问或建议,欢迎评论区留言~
‘陆’ python如何实现动态规划算法寻找最优匹配子串
把较低的mismatch用字典保存一下,就好了。如:
def match(s1,s2):
length = len(s2)result = ""resultMissmatchCount=lengthseqdict={}for index,s in enumerate(s1[:-length]):
missmatch = 0
for j,k in zip(s1[index:index+length],s2): #[(s1[0],s2[0]),(s1[1],s2[1]),...]
if j!=k:
missmatch += 1
if missmatch <= resultMissmatchCount:
seqdict[missmatch]=s1[index:index+length]
resultMissmatchCount = missmatch
minkey=min(seqdict.keys())result = seqdict[minkey]return result