ABC066 をPythonで解く
A~Cを解いた。
A
A = [int(a) for a in input().split()] ans = sum(A)-max(A) print(ans)
B
いままではif文で処理していた最大値部分をm = max(m,xxx))と書いている人がいたので真似してみた。当たり前と言われればそれまでだがスマートな書き方だと思う。
S =input() m = 0 for i,s in enumerate(S): tmp = S[:-1-i] tmp1 = tmp[:len(tmp)//2] tmp2 = tmp[len(tmp)//2:] if len(tmp)%2==0 and(tmp1==tmp2): m = max(m,len(tmp)) print(m)
C
listに対してinsertとappendを行うとTLE。
初めてdequeを使った。listの中身を1行で表示するのはjoinを使うと一発だが毎回検索しているのでそろそろ覚えたい。
N = int(input()) A = input().split() from collections import deque tmp = deque([]) for i,a in enumerate(A): if i %2!=0: tmp.appendleft(a) else: tmp.append(a) if N%2!=0: tmp.reverse() print(' '.join(tmp))