360 2020技術綜合筆試(2019.8.31)編程題雙AC

 

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章