第十二屆藍橋杯軟體類模擬賽python程式設計 第二期(5)字母間距
阿新 • • 發佈:2021-01-28
技術標籤:python藍橋杯模擬列表字串python演算法藍橋杯
如有錯誤歡迎指正
如有更好的解法歡迎分享
Topic
兩個字母之間的距離定義為它們在字母表中位置的距離。
例如 A 和 C 的距離為 2,L 和 Q 的距離為 5。
對於一個字串,我們稱字串中兩兩字元之間的距離之和為字串的內部距離。
例如:ZOO 的內部距離為 22,其中 Z 和 O 的距離為 11。
請問,LANQIAO 的內部距離是多少?
Solution
可以利用列表的索引進行求解
舉例:
在這裡把A看作索引值0,C看作索引值2
相減即為結果2
首先將A到Z按順序放在列表當中
這裡為了減少程式碼量就先表示為了字串
再轉換為的列表利用索引
之後對LANQIAO進行同樣操作設定為列表b
將b中字母在A中尋找索引值
同時減去b中上一個字母的索引值
兩值相減加入到結果res中
直至完全遍歷完b中的字母
輸出res即可完成本題
Code
a = list('ABCDEFGHIJKLMNOPQRSTUVWXYZ')
ans = 0
b = list('LANQIAO')
for i in range(1, len(b)):
a_1 = a.index(b[i])
a_2 = b.index(b[i - 1])
ans += a_1 - a_2
print(ans)
Answer
40