无重复最长子串python_python 无重复字符的最长子串

本文介绍了如何使用Python解决无重复字符的最长子串问题(lengthOfLongestSubstring),展示了动态规划的方法。此外,还探讨了计算阶跃楼梯问题(climbStairs)的递归解法,并涉及查找数组中出现次数超过一半的数字(MoreThanHalfNum_Solution)。文中也展示了寻找质数的简单实现。
摘要由CSDN通过智能技术生成

#####无重复字符的最长子串

def lengthOfLongestSubstring(s):

last = {}

ent = {}

for i in s:

if i in last:

ent[''.join(last.keys())] = sum(last.values())

last = {}

last[i] = 1

else:

last[i] = 1

ent[''.join(last.keys())] = sum(last.values())

print(ent)

aww = lengthOfLongestSubstring('abcabcbb')

print(aww)

######3

# 台阶跳

def climbStairs(n):

if n ==1:

return 1

elif n==2:

return 2

else:

return climbStairs(n-1) + climbStairs(n-2)

wqq = climbStairs(10)

print(wqq)

# 数组中出现次数超过一半的数字

def MoreThanHalfNum_Solution(numbers):

if not numbers: return 0

dict1 ={}

for i in numbers:

if dict1.get(i):

dict1[i] += 1

else:

dict1[i] = 1

a = sorted(dict1.items(),key=lambda x: x[1],reverse=True)

res = a[0][0]

return res if numbers.count(res) > len(numbers) / 2 else 0

a = MoreThanHalfNum_Solution([1,2,3,2,2,2,5,4,2])

print(a)

# 求质数

num=[]

for i in range(2,10):

for j in range(2,i):

if(i%j==0):

break

else:

num.append(i)

print(num)

# 斐波那契数列

number=10

def Fibonacci(number):

n, a, b = 0, 0, 1

while n < number:

yield b

a, b = b, a + b

n = n + 1

s = Fibonacci(number)

print(list(s))

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值