1. 轉盤得分
    1. 題目
    2. 解題

轉盤得分

轉盤得分

APCS歷屆

題目

看一下題目吧~
pic
題目要求我們模擬一個轉盤,會左右轉,就是將東西丟到左右的。

解題

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# 把頭放到腳or 放到頭
from sys import stdin
def right(t, string):
for i in range(t):
string.insert(0, string[-1])
string.pop()
return string

def left(t, string):
for i in range(t):
string.append(string[0])
string.pop(0)
return string

def cou():
global total
for i in range(n):
big = 0
last = 0
arr = []
for j in range(len(strings)):
arr.append(strings[j][i])
arr = sorted(arr)
#print(arr)
laststr = arr[0]
for j in arr:
if j == laststr:
big += 1
else:
last = max(last, big)
big = 1
laststr = j
#print(max(big, last))
total += max(big, last)

#m, n, k = 3, 6, 2
#strings = [list("apcsie"), list("taiwan"), list("icpeda")]
#print(left(4, strings))
m, n, k = map(int, stdin.readline().split())
strings = []
for i in range(m):
strings.append(list(input()))

total = 0
for i in range(k):
inp = list(map(int, stdin.readline().split()))
for j in range(m):
if inp[j] < 0:
strings[j] = left(-inp[j], strings[j])
if inp[j] == 0:
pass
if inp[j] > 0:
strings[j] = right(inp[j], strings[j])
cou()
#n = 3
#strings = [list("abc"), list("abc"), list("acb")]
#print(strings)
print(total)

我的想法就是寫兩個function,固定用pop和insert, append等來做到從後面丟到前面的實作。