s = input()
m = {}
maximum = 0
for i in s:
if i not in m:
count = 0
m[i] = i
for j in s:
if j == i:
count += 1
if count >= maximum:
maximum = count
print(maximum)
只需要考虑单个字符就可以
N, M = list(map(int, input().split()))
D = []
for _ in range(M):
D.append(int(input()))
m = []
for i in range(N):
temp = [i]
for j in D:
length = len(temp)
for _ in range(length):
ii = temp[0]
temp.pop(0)
if ii + j >= N and ii - j < 0:
continue
if ii + j < N:
temp.append(ii + j)
if ii - j >= 0:
temp.append(ii - j)
if not temp:
break
for j in temp:
if j not in m:
m.append(j)
print(len(m))
对起点进行遍历,每个起点可以得到很多个终点,建立一个map存放终点,最后map的大小即得到所有终点数。
上面的temp是记录每一步的终点,如果进行完该步后temp为空了,说明无论怎么走都不能满足终点需求,所以break