一、字符串匹配问题
def string_match(string,sub_str):
a=len(string)
b=len(sub_str)
for i in range(a+1-b):
index=i #i表示主串中的起始下标,以及第几次匹配
for j in range(b): #j遍历的是子串的每一个元素
if string[index]==sub_str[j]:
index+=1 # 在第一个元素相当的情况下index累加遍历主串的元素
else:
break #因为第一次匹配都不相等,就直接跳出循环,不再对比后续了
if index-1==b:
print(i) #二层循环遍历完且全部相等的时候,执行这一步,输出i,
#i的数就是完成循环的次数,也就是子串存在的个数
return -1
print(string_match('adcadcbgadc','adc')) #函数 return i 才有结果
string_match('adcadcbgadc','adc') #函数内部print(i) 才能有输出结果
方法二
a='fdfd4fd_dfdv'
b='d4'
print(a.count(b))
返回1:
1
二、质数因子
求整数的质数因子
# while True: 只有处理多组数据时,才使用while True
a=int(input())
data=[]
for i in range(2,a//2+1):
while a%i==0: #质数即整除
a=a/i #求的一个质数后取商
data.append(i)
print(" ".join(map(str,data))+" ") #join() 只能插入字符串中