Python經典面試題
- 2020 年 1 月 7 日
- 筆記
#1.字元串最後一個單詞的長度
題目描述:計算字元串最後一個單詞的長度,單詞以空格隔開。
輸入描述: 一行字元串,非空,長度小於5000。 輸出描述: 整數N,最後一個單詞的長度。
示例1: 輸入:hello world 輸出:5 參考程式碼一: #!/usr/bin/env python #coding:utf-8 str = raw_input("str:") if str == 0: print "請輸入一串字元" elif len(str) != 0 and len(str) < 5000: str1 = len(str.split()[-1:][0]) print str1
參考程式碼二: #!/usr/bin/env python #coding:utf-8 str = raw_input("str:") if len(str) == 0: print "請輸入一串字元" elif len(str) != 0 and len(str) < 5000: str = str[0:] str1 = str.split() print len(str1[-1])
運行結果: [root@localhost code1]# python one.py str:hello world 5
#2. 計算字元個數
題目描述: 寫出一個程式,接受一個有字母和數字以及空格組成的字元串,和一個字元,然後輸出輸入字元串中含有該字元的個數。不區分大小寫。
輸入描述: 輸入一個有字母和數字以及空格組成的字元串,和一個字元。 輸出描述:輸出輸入字元串中含有該字元的個數。
示例1: 輸入:ABCDEF A 輸出:1
#!/usr/bin/env python #coding:utf-8
str = raw_input("str:") count_a=count_b=count_c=0 for i in str: if (ord(i)>=65 and ord(i)<=90) and (ord(i)>=97 and ord(i)<=122): count_a +=1 #print '字母的個數:%d個' %(count_a) elif ord(i)<=57 and ord(i)>=48: count_b +=1 #print '數字的個數:%d個' %(count_b) elif ord(i) == 32: count_c +=1 #print '空格的個數:%d個' %(count_c) print '%d' %(count_a+count_b+count_c) 運行結果: [root@localhost code1]# python two.py str:ABCDEF A 1
#3. 簡單密碼破解
題目描述:密碼是我們生活中非常重要的東東,我們的那麼一點不能說的秘密就全靠它了。哇哈哈. 接下來淵子要在密碼之上再加一套密碼,雖然簡單但也安全。
假設淵子原來一個BBS上的密碼為zvbo9441987,為了方便記憶,他通過一種演算法把這個密碼變換成YUANzhi1987,這個密碼是他的名字和出生年份,怎麼忘都忘不了,而且可以明目張胆地放在顯眼的地方而不被別人知道真正的密碼。
他是這麼變換的,大家都知道手機上的字母: 1–1, abc–2, def–3, ghi–4, jkl–5, mno–6, pqrs–7, tuv–8 wxyz–9, 0–0,就這麼簡單,淵子把密碼中出現的小寫字母都變成對應的數字,數字和其他的符號都不做變換,
聲明:密碼中沒有空格,而密碼中出現的大寫字母則變成小寫之後往後移一位,如:X,先變成小寫,再往後移一位,不就是y了嘛,簡單吧。記住,z往後移是a哦。
輸入描述:輸入包括多個測試數據。輸入是一個明文,密碼長度不超過100個字元,輸入直到文件結尾; 輸出描述:輸出淵子真正的密文
示例1: 輸入:YUANzhi1987 輸出:zvbo9441987
#!/usr/bin/env python #coding:utf-8
str = raw_input("str:") dict = { ('a','b','c'):2, ('d','e','f'):3, ('g','h','i'):4, ('j','k','l'):5, ('n','m','o'):6, ('p','q','r','s'):7, ('t','u','v'):8, ('w','x','y','z'):9 } li = [] for i in str: if i.isdigit(): li.append(i) elif i.islower(): for m,n in dict.items(): if i in m: li.append(n) break elif i.isupper(): if i=='Z': li.append('a') else: s=chr(ord(i)+33) li.append(s) else: print 'error' print li
[root@localhost code1]# python three.py str:YUANzhi1987 ['z', 'v', 'b', 'o', 9, 4, 4, '1', '9', '8', '7']
#4. (2017-騰訊-在線編程題)
- 題目描述:
給定一個正整數,編寫程式計算有多少對質數的和等於輸入的這個正整數,並輸出結果。輸 入值小於1000。 如,輸入為10, 程式應該輸出結果為2。(共有兩對質數的和為10,分別為(5,5),(3,7))
- 輸入描述: 輸入包括一個整數n,(3 ≤ n < 1000)
- 輸出描述: 輸出對數
- 示例1 :
輸入: 10 輸出: 2