Skip to content
本站總訪問量
本站訪客數 人次

loop 10 question answer

第 1 題:判斷相加後是否為迴文

python

import sys

for line in sys.stdin.read().splitlines():
    a, b = map(int, line.split())
    s = str(a + b)
    print(s, s == s[::-1])

第 2 題:重複文字只保留一個

python
s = input()

# 最早出現的保留
seen = set()
first = ""
for ch in s:
    if ch not in seen:
        seen.add(ch)
        first += ch

# 最晚出現的保留
seen = set()
last = ""
for ch in reversed(s):
    if ch not in seen:
        seen.add(ch)
        last = ch + last

print(first)
print(last)

第 3 題:密碼強度等級判斷

python
import re

def password_strength(pw):
    score = 0
    if len(pw) >= 8:
        score += 1
    if re.search(r'[A-Za-z]', pw) and re.search(r'\d', pw):
        score += 1
    if re.search(r'[A-Z]', pw):
        score += 1
    if re.search(r'[~!@#$%^&_()\[\]{}<>.,+\\/-]', pw):
        score += 1

    return ["Week", "Normal", "Nice", "Good", "Strong"][score]

try:
    while True:
        pw = input().strip()
        if pw == "":
            break
        print(password_strength(pw))
except EOFError:
    pass

第 4 題:連續數字的最長子字串長度

python
import re

s = input()
numbers = re.findall(r'\d+', s)

if numbers:
    print(max(len(num) for num in numbers))
else:
    print(0)

第 5 題:賣鴨子倒推

python
def duck(n, remain, steps=[]):
    if n == 0:
        print("出發時共", remain, "")
        return remain
    sold = remain + 1
    total = sold * 2
    steps.append((n, sold, remain))
    result = duck(n - 1, total, steps)
    if n == len(steps):
        for i in reversed(steps):
            print(f"經過第 {i[0]} 個村莊 賣 {i[1]} 隻,剩 {i[2]} 隻鴨")
    return result

n, m = map(int, input().split())
duck(n, m)

第 6 題:巴斯卡三角形

python
def pascal(n):
    if n == 1:
        return [[1]]
    else:
        triangle = pascal(n - 1)
        prev_row = triangle[-1]
        new_row = [1]
        for i in range(1, len(prev_row)):
            new_row.append(prev_row[i - 1] + prev_row[i])
        new_row.append(1)
        triangle.append(new_row)
        return triangle

n = int(input())

triangle = pascal(n)
for row in triangle:
    print(row)

Contributors

The avatar of contributor named as lucashsu95 lucashsu95

Changelog