`非遞減字串` ``` import sys in_txt = sys.stdin.read() N = 1 M = 0 def smart(a,b): global N global M if a >=b: N += 1 if N >= M: M = N else: if N >= M: M = N N = 1 b = a for in_txt_s in in_txt.splitlines(): N = 1 M = 0 for i in range(1,len(in_txt_s)): smart(int(in_txt_s[i]), int(in_txt_s[i-1])) if N >= M: M = N print(M) ``` --- `身分證` ``` # A=10 B=11 C=12 D=13 E=14 F=15 G=16 H=17 I=34 J=18 K=19 L=20 # M=21 N=22 O=35 P=23 Q=24 R=25 S=26 T=27 U=28 V=29 W=32 X=30 # Y=31 Z=33 import sys in_txt = sys.stdin.read() check_num = 0 if in_txt[0] == 'A': check_num += 1 + 0 * 9 elif in_txt[0] == 'B': check_num += 1 + 1 * 9 elif in_txt[0] == 'C': check_num += 1 + 2 * 9 elif in_txt[0] == 'D': check_num += 1 + 3 * 9 elif in_txt[0] == 'E': check_num += 1 + 4 * 9 elif in_txt[0] == 'F': check_num += 1 + 5 * 9 elif in_txt[0] == 'G': check_num += 1 + 6 * 9 elif in_txt[0] == 'H': check_num += 1 + 7 * 9 elif in_txt[0] == 'I': check_num += 3 + 4 * 9 elif in_txt[0] == 'J': check_num += 1 + 8 * 9 elif in_txt[0] == 'K': check_num += 1 + 9 * 9 elif in_txt[0] == 'L': check_num += 2 + 0 * 9 elif in_txt[0] == 'M': check_num += 2 + 1 * 9 elif in_txt[0] == 'N': check_num += 2 + 2 * 9 elif in_txt[0] == 'O': check_num += 3 + 5 * 9 elif in_txt[0] == 'P': check_num += 2 + 3 * 9 elif in_txt[0] == 'Q': check_num += 2 + 4 * 9 elif in_txt[0] == 'R': check_num += 2 + 5 * 9 elif in_txt[0] == 'S': check_num += 2 + 6 * 9 elif in_txt[0] == 'T': check_num += 2 + 7 * 9 elif in_txt[0] == 'U': check_num += 2 + 8 * 9 elif in_txt[0] == 'V': check_num += 2 + 9 * 9 elif in_txt[0] == 'W': check_num += 3 + 2 * 9 elif in_txt[0] == 'X': check_num += 3 + 0 * 9 elif in_txt[0] == 'Y': check_num += 3 + 1 * 9 else: check_num += 3 + 3 * 9 check_num += int(in_txt[1]) * 8 check_num += int(in_txt[2]) * 7 check_num += int(in_txt[3]) * 6 check_num += int(in_txt[4]) * 5 check_num += int(in_txt[5]) * 4 check_num += int(in_txt[6]) * 3 check_num += int(in_txt[7]) * 2 check_num += int(in_txt[8]) check_num += int(in_txt[9]) if check_num % 10 == 0: print('合法') else: print('不合法') ``` --- `TwoSum` ``` import sys in_txt = sys.stdin.read() in1,in2 = in_txt.split() in3 = in1.split(',') in2 = int(in2) i = 0 left = 0 num_index = list(zip(in3, range(len(in3)))) right = len(num_index) - 1 while left < right: curr_sum = int(num_index[left][0]) + int(num_index[right][0]) int (curr_sum) int(in2) if curr_sum == in2: print(num_index[left][1], num_index[right][1]) break elif curr_sum < in2: left += 1 else: right -= 1 ``` --- 提示: 完美數,有這些數列 https://en.wikipedia.org/wiki/List_of_Mersenne_primes_and_perfect_numbers 下面是正向解,一定timeout ``` import sys txt = sys.stdin.read() pf = [6,28,496,8128,333550336,8589869056] # pf_sum = 0 # for i in range(1,int(txt)+1): # for l in range(1,int(txt)+1): # if int(txt) == i*l : # if i not in pf: # if i != int(txt): # pf.append(i) # pf_sum += i # if l not in pf: # if l != int(txt): # pf.append(l) # pf_sum += l # print(pf) # pf.remove(int(txt)) # print(pf) # if pf_sum == int(txt): # print("True") # else: # print("False") if int(txt) in pf: print("True") else: print("False") ``` --- 信用卡 ``` import sys def twoAdd(ss): return(ss//10)+(ss%10) str = sys.stdin.read() q = str.splitlines() for r in q: c = list(r) x = 0 g = 0 for b in c: if x % 2 == 0: s = twoAdd(int(b)*2) else: s = int(b) g += s x += 1 if g %10 ==0: print('T') else: print('F') ``` --- 兩樹相加 ``` import sys txt = sys.stdin.read() def smart(a): target1 = a.split() target = target1[1] sum1 = target1[0].split(",") print(target,sum1) TR = [] TR.clear() toto = 0 for i in range(0,len(sum1)): print("這邊") for l in range(i+1,len(sum1)): toto = int(sum1[i])+int(sum1[l]) if toto == int(target): print(toto) TR.append("T") else: TR.append("F") if "T" in TR: print("T") else: print("F") for i in txt.splitlines(): smart(i) ``` --- 兩數相加 ``` import sys def twoAdd(ss): return(ss//10)+(ss%10) txt = sys.stdin.read() c = txt.splitlines() for e in c: g = 0 h = e.split(' ') z = h[0].split(',') x = 0 y = 0 for i in z: for j in z: if(int(i)+int(j)) == int(h[1])and x != y: g = 1 break y+=1 x+=1 if g == 1: print("T") else: print("F") ``` 股票 import sys import math in_txt = sys.stdin.read().split() qs = list(map(int, in_txt)) MA2_list = [] MA3_list = [] MA5_list = [] for i in range(len(qs)-1): MA2 = math.ceil((qs[i] + qs[i+1])/2) MA2_list.append(MA2) for i in range(len(qs)-2): MA3 = math.ceil((qs[i] + qs[i+1]+qs[i+2])/3) MA3_list.append(MA3) for i in range(len(qs)-4): MA5 = math.ceil((qs[i] + qs[i+1]+qs[i+2]+qs[i+3]+qs[i+4])/5) MA5_list.append(MA5) print(*MA2_list, sep = ' ') print(*MA3_list, sep = ' ') print(*MA5_list, sep = ' ')