# 相同數量的母音 ```python= st = input() o = ["a", "A", "e", "E", "i", "I", "o", "O", "u", "U"] if(len([i for i in st[0:len(st)//2] if i in o]) == len([i for i in st[len(st)//2::] if i in o])): print(True) else: print(False) ``` # 將英文字母轉為小寫 ```python= print(input().lower()) ``` # 交錯合併字串 ```python= st1, st2 = input(), input() st3 = "" if len(st1) == len(st2): for i in range(len(st1)): st3 += st1[i] st3 += st2[i] else: if len(st1) > len(st2): st1 ,st2 = st2, st1 for i in range(len(st1)): st3 += st2[i] st3 += st1[i] else: for i in range(len(st1)): st3 += st1[i] st3 += st2[i] st3 += st2[len(st1)::] print(st3) ``` # 兩個字串是否相同 ```python= st1, st2 = [i for i in input() if i != " "], [i for i in input() if i != " "] if st1 == st2: print(True) else: print(False) ``` # 字串解碼 ```python= st = input() a = [] flag = st.count("#") t = 0 for i in range(len(st)): i += t if i >= len(st): break if st[i] == '#': continue if flag: if st[i+2] == '#': a.append(int(st[i:i+2])) t += 2 flag -= 1 else: a.append(int(st[i])) else: a.append(int(st[i])) print("".join([chr(i+96) for i in a])) ``` # 以遞升及遞減重組字串 ```python= a = [0]*(26) st = input() for i in st: a[ord(i)-97] += 1 st2 = "" flag = True while flag: flag = False for i in range(len(a)): if a[i]: flag = True st2 += chr(i+97) a[i] -= 1 for i in range(len(a)-1, -1, -1): if a[i]: flag = True st2 += chr(i+97) a[i] -= 1 print(st2) ``` # 走回原位的機器人 ```python= st = list(input()) xy = [0, 0] for i in st: if i == "U": xy[1] += 1 elif i == "D": xy[1] -= 1 elif i == "L": xy[0] -= 1 elif i == "R": xy[0] += 1 if xy[0] == xy[1] == 0: print(True) else: print(False) ``` # 最多層的小括號 ```python= st = list(input()) t = 0 ans = 0 for i in st: if i == "(": t += 1 elif i == ")": t -= 1 ans = max(ans, t) print(ans) ``` # 判斷輸入的字串是否「全字母」 ```python= a = [0]*26 st = list(input()) for i in st: a[ord(i)-97] = 1 if a.count(0): print(False) else: print(True) ``` # 分解句子 ```python= st = input().split() n = int(input()) print(" ".join(st[0:n])) ``` # 把所有的數字改成英文 ```python= st = input() st2 = "" for i in range(len(st)): if st[i].isdigit(): st2 += chr(ord(st[i-1])+int(st[i])) else: st2 += st[i] print(st2) ``` # 指定範圍間的「可自我整除」之數 ```python= num1 = int(input()) num2 = int(input()) ans = [] for i in range(num1, num2+1): for j in list(str(i)): if int(j) == 0: break if i%int(j): break else: ans.append(i) print(ans) ``` # 計算競賽總場次 ```python= n = int(input()) ans = 0 while n != 1: ans += (n+1)//2 n //= 2 print(ans) ``` # 鍵盤的一個橫列 ```python= key = ['qwertyuiop', 'asdfghjkl', 'zxcvbnm'] st = [i.lower() for i in input().split()] ans = 0 for i in st: temp = 0 for j in range(3): if i[0] in key[j]: temp = j for j in range(1, len(i)): if i[j] not in key[temp]: break else: ans += 1 print(ans) ``` # 反轉句子中的單字 ```python= print(*[i[::-1] for i in input().split()]) ``` # 反轉字串 ```python= print(input()[::-1]) ``` # 字串間共同使用的字母 ```python= st = input().split() key = [[0]*26 for _ in range(len(st))] for i in range(len(st)): for j in st[i]: key[i][ord(j)-97] += 1 ans = [] for j in range(26): for i in range(len(st)): if key[i][j] == 0: break else: for _ in range(min([key[i][j] for i in range(len(st))])): ans.append(chr(j+97)) print("".join(ans)) ``` # 字串中的每個位置到指定文字的距離 ```python= st = list(input()) n = input() target = [i for i in range(len(st)) if st[i] == n] ans = [100001]*(len(st)) for i in target: for j in range(len(st)): ans[j] = min(ans[j], abs(i-j)) print(ans) ``` # 兩字串的本質比較 ```python= st1 = list(input()) st2 = list(input()) d = {} if len(st1) != len(st2): print(False) else: for i in range(len(st1)): if st1[i] in d: d[st1[i]] += 1 else: d[st1[i]] = 1 if st2[i] in d: d[st2[i]] += 1 else: d[st2[i]] = 1 for i in d: if d[i]%2: print(False) break else: print(True) ``` # 兩個數字的漢明距離 ```python= num1 = bin(int(input()))[2::] num2 = bin(int(input()))[2::] ans = 0 while len(num1) < len(num2): num1 = '0'+num1 while len(num2) < len(num1): num2 = '0'+num2 for i in range(len(num1)): if num1[i] != num2[i]: ans += 1 print(ans) ``` # 重組句子中的單字 ```python= st = input().split() st.sort(key=lambda x: int(x[-1])) for i in st: print(i[0:-1], end=" ") ``` # 持續刪除相鄰相同者 ```python= st = input() stack = [] for i in st: if stack and stack[-1] == i: stack.pop() else: stack.append(i) print("".join(stack)) ``` # 歸零的步驟數 ```python= num = int(input()) step = 0 while num: if num%2: num -= 1 else: num //= 2 step += 1 print(step) ``` # 計算不重複數字的總和 ```python= a = [0]*1000 ar = [int(i) for i in input().split()] for i in ar: a[i] += 1 print(sum([i for i in range(1000) if a[i] == 1])) ``` # 排錯順序的數字個數 ```python= st = [int(i) for i in input().split()] st1 = sorted(st) ans = 0 for i in range(len(st)): if st[i] != st1[i]: ans += 1 print(ans) ``` # 成對資料的次大值之和 ```python= ar = sorted([int(i) for i in input().split()], reverse = True) ans = 0 for i in range(0, len(ar), 2): ans += min(ar[i], ar[i+1]) print(ans) ``` # 找出出現一半次數的數字 ```python= ar = [int(i) for i in input().split()] n = len(ar)//2 for i in set(ar): if ar.count(i) == n: print(i) break ``` # 出現次數是否都不同 ```python= ar = [int(i) for i in input().split()] num = set(ar) ans = set([ar.count(i) for i in num]) print(True if len(num) == len(ans) else False) ``` # 找出最高高度 ```python= ans, temp = 0, 0 ar = [int(i) for i in input().split()] for i in ar: temp += i ans = max(ans, temp) print(ans) ``` # 加總奇數個數內容的總和 ```python= ar = [int(i) for i in input().split()] ans = 0 for i in range(0, len(ar), 2): for j in range(len(ar)): if j+i >= len(ar): break ans += sum(ar[j:j+i+1]) print(ans) ``` # 以遞升及遞減重組字串 ```python= ar = [int(i) for i in input().split()] for i in range(len(ar)): temp = 1 while i+temp < len(ar): if ar[i] < ar[i+temp]: temp += 1 else: ar[i] = ar[i]-ar[i+temp] break print(ar) ``` # 最大值及次大值的乘積 ```python= ar = [int(i) for i in input().split()] f, s = 0, 0 for i in ar: if i > f: s = f f = i elif i > s: s = i print((f-1)*(s-1)) ``` # 右邊的最大值 ```python= ar = [int(i) for i in input().split()] n = len(ar) for i in range(n-1): ar[i] = max(ar[i+1:n]) ar[-1] = -1 print(ar) ``` --- # 寫完la