1.数组中出现次数超过一半的数字
def more_than_half(alist):
n=len(alist)
if n==0: return
res=alist[0]
count=1
for i in range(1, n):
if count==0:
res=n[i]
count=1
elif alist[i]==res:
count+=1
else:
count-=1
counts=0
for j in range(n):
if alist[j]==res:
counts+=1
if counts>n//2:
return res
else:
return 0
2.求100以内的质数
p = [p for p in range(1, 100) if 0 not in [p % d for d in range(2, int(math.sqrt(p)) + 1)]]
3.无重复字符的最长子串-Python实现
def length_of_longest_substring(s):
max_len=0
if s is None or len(s)==0:
return max_len
str_dict={}
one_max=0
start=0
for i in range(len(s)):
if s[i] in str_dict and str_dict[s[i]]>=start:
start=str_dict[s[i]]+1
one_max=i-start+1
str_dict[s[i]]=i
max_len = max(max_len, one_max)
return max_len
4.