python-新手上路-Day11 | Test-4
1. 暖身(最近有點冷)
給你兩個整數,請判斷相加後的數字轉為字串,然後判斷該字串是否為迴文
Hint
迴文是指正序(從左向右)和倒序(從右向左)讀都是一樣的字串。
輸入:
100 1
1 1
9 9
111 111
0 -1
輸出:
101 True
2 True
18 False
222 True
-1 False
2. 重複文字只保留一個
這題要求我們處理字串中的重複字元,並產生兩種不同的結果:
題目解析
- 第一行輸出:遇到重複字元時,只保留最早出現的那一個
- 第二行輸出:遇到重複字元時,只保留最晚出現的那一個
解題思路:
- 對於第一行:從左到右掃描,遇到已經出現過的字元就跳過
- 對於第二行:從右到左掃描,遇到已經出現過的字元就跳過
輸入 1:
abacdaebc
輸出 1:
abcde (只留最早出現的相同文字)
daebc (只留最晚出現的相同文字)
解釋:
a
在位置 0, 2 出現,保留最早的位置 0,最晚的位置 2b
在位置 1, 7 出現,保留最早的位置 1,最晚的位置 7c
在位置 3, 8 出現,保留最早的位置 3,最晚的位置 8
輸入 2:
fjgipqrgfjq
輸出 2:
fjgipqr
iprgfjq
3. 密碼規則
輸入: 輸入一個數 n 代表接下來會有 n 行需要檢查的密碼
輸出: 輸出密碼的等級
處理: 請撰寫一程式,要求使用者輸入一個密碼(字串),檢查此密碼等級。
密碼規則如下:
- 必須至少八個字元。
- 包含英文字母和數字。
- 有一個大寫英文字母。
- 有一個特殊符號(後面這些都算)
~!@#$%^&_()\_+-_/<>,.[]\/
。
如果符合四個規則輸出【Strong】,如果符合三個規則輸出【Good】,如果符合二個規則輸出 【Nice】,如果只符合一個規則輸出【Normal】,如果都不符合則輸出【Week】
輸入:
39dghu#qdG
1122
GGaa55
77g9@1122555
7aaffGG
Accessible
Dfdf
輸出:
Strong
Week
Nice
Good
Nice
Normal
Week
4. 連續數字的最長子字串
給定一個字串s,找出s中最長的連續數字子字串之長度。
輸入 1:
abc123de689
輸出 1:
3
說明: abc123de689的最長連續數字子字串為123,其長度為3
輸入 2:
xyz
輸出 2:
0
說明: 找不到任何包含數字的子字串
5. 賣鴨子
輸入: 一正整數 n ,經過 n 個村莊
輸出: 接著 n 列:經過第?個村莊各賣出多少隻鴨子、剩餘多少隻鴨子 最後一列:出發時共 有多少隻鴨子
處理: 一個人趕著鴨子去每個村莊賣,每經過一個村莊賣去所趕鴨子的一半又一隻,試寫一支程式 計算經過 n 個村莊,最後來剩 m 隻鴨子,出發時總共有多少隻鴨子。
小挑戰
請用遞迴實做
輸入 1:
3 2
輸出 1:
經過第 3 個村莊 賣 4 隻,剩 2 隻鴨
經過第 2 個村莊 賣 8 隻,剩 6 隻鴨
經過第 1 個村莊 賣 16 隻,剩 14 隻鴨
出發時共 30 隻
輸入 2:
8 3
輸出 2:
經過第 8 個村莊 賣 5 隻,剩 3 隻鴨
經過第 7 個村莊 賣 10 隻,剩 8 隻鴨
經過第 6 個村莊 賣 20 隻,剩 18 隻鴨
經過第 5 個村莊 賣 40 隻,剩 38 隻鴨
經過第 4 個村莊 賣 80 隻,剩 78 隻鴨
經過第 3 個村莊 賣 160 隻,剩 158 隻鴨
經過第 2 個村莊 賣 320 隻,剩 318 隻鴨
經過第 1 個村莊 賣 640 隻,剩 638 隻鴨
出發時共 1278 隻
6. 巴斯卡三角形
試寫一程式印出指定大小之巴斯卡三角形
小挑戰
請用遞迴實做
輸入:
6
輸出:
[1]
[1, 1]
[1, 2, 1]
[1, 3, 3, 1]
[1, 4, 6, 4, 1]
[1, 5, 10, 10, 5, 1]