python 1033 旧键盘打字 (20 分)
1033 舊鍵盤打字 (20 分)
舊鍵盤上壞了幾個鍵,于是在敲一段文字的時候,對應的字符就不會出現。現在給出應該輸入的一段文字、以及壞掉的那些鍵,打出的結果文字會是怎樣?
輸入格式:
輸入在 2 行中分別給出壞掉的那些鍵、以及應該輸入的文字。其中對應英文字母的壞鍵以大寫給出;每段文字是不超過 10?5?? 個字符的串。可用的字符包括字母 [a-z, A-Z]、數字 0-9、以及下劃線 _(代表空格)、,、.、-、+(代表上檔鍵)。題目保證第 2 行輸入的文字串非空。
注意:如果上檔鍵壞掉了,那么大寫的英文字母無法被打出。
輸出格式:
在一行中輸出能夠被打出的結果文字。如果沒有一個字符能被打出,則輸出空行。
輸入樣例:
7+IE. 7_This_is_a_test.輸出樣例:
_hs_s_a_tst實現方法一:
1.判斷上檔鍵好壞
壞的?
遍歷n,并判斷其中是否存在大小寫,和是否與壞鍵重復,因為這里的壞鍵的字母輸入被大寫,所以將 m 小寫后再和 n 比較
好的?
同樣需要辨別大小寫,遍歷n 判斷是否在m(大寫)和m1(小寫)兩者中存在
實現方法二:
較方法一,代碼更簡潔,邏輯更好
1.因為壞鍵都是大寫的,所以將每個輸入的字母大寫并賦值給臨時變量s,i不變
將m n判斷,剔除m中的壞鍵字符
再次判斷:上檔鍵沒壞,輸出i,OR 輸出不是大寫字母的字符
代碼部分:
方法一:
m=input()
m1=m.lower()
n=input()
str1=''
if '+' in m1:
?? ?for i in n:
?? ??? ?if i in m1 or 'A'<=i<='Z':
?? ??? ??? ?continue
?? ??? ?else:
?? ??? ??? ?str1+=i
else:
?? ?
?? ?for i in n:
?? ??? ?if i not in m and i not in m1:???? # i 中的內容大小寫并存,A 和a是不同的,所以如果字符串 n 中同時存在一種字符的大小寫,那就需要判斷
?? ??? ??? ?str1+=i
?? ??? ??? ?
print(str1)
方法二:
m=input()
n=input()
str1=''
for i in n:
?? ?if i>='a' and i<='z':
?? ??? ?s=i.upper()
?? ?else:
?? ??? ?s=i
?? ?if s not in m:
?? ??? ?if '+' not in m or (i<'A' or i>'Z'):
?? ??? ??? ?str1+=i
print(str1)
???
轉載于:https://www.cnblogs.com/hexia7935/p/10224288.html
總結
以上是生活随笔為你收集整理的python 1033 旧键盘打字 (20 分)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Kafka(1)-概述
- 下一篇: Python机器学习笔记:深入理解Ker