華爲機試題解析002:計算字符個數(python)

華爲機試題解析這個專欄,不僅僅要告訴讀者什麼是正確的做法,還會將大家常犯的錯誤列出來,這樣才能在以後的做題中,避免進入坑裏。開始一步步進階吧!

題目描述

寫出一個程序,接受一個由字母和數字組成的字符串,和一個字符,然後輸出輸入字符串中含有該字符的個數。不區分大小寫。

輸入描述:

第一行輸入一個有字母和數字以及空格組成的字符串,第二行輸入一個字符。

輸出描述:

輸出輸入字符串中含有該字符的個數。

示例1

輸入:
ABCDEF
A
輸出:
1

這個題目實際很簡單,但是在這裏分享一下本人遇到的坑:
我一開始的答案是:

input_str = input('please input string:')
input_char = input('please input one char:')
input_str = input_str.lower()
input_char = input_char.lower()
num = 0
for i in input_str:
    if input_char == i:
        num += 1
print(num)

提示未通過,我就覺得很疑惑,這麼簡單的題目爲什麼會不通過呢?然後就去看別人的答案,其中有一個跟我是類似的,如下:

a=input().lower()
b=input().lower()
print(a.count(b))

我覺得跟我寫的沒有區別啊,我就是對count實現了一遍而已,怎麼會不通過呢?
然後我就採用count函數:

input_str = input('please input string:').lower()
input_char = input('please input one char:').lower()
print(input_str.count(input_char))

結果還是不通過,然後我就試了一下別人的答案,確實能通過,這就奇怪了,難道是因爲我的input中有一些提示字符的關係?,然後我就把字符去掉試了一下,發現果然可以了:

input_str = input().lower()
input_char = input().lower()
print(input_str.count(input_char))

然後我又回頭把第一次寫的代碼的提示字符去掉,再試了一下,果然也能通過了。

input_str = input()
input_char = input()
input_str = input_str.lower()
input_char = input_char.lower()
num = 0
for i in input_str:
    if input_char == i:
        num += 1
print(num)

具體是什麼原因導致的呢,實際上input中的提示字符是沒有任何作用的,僅僅只是提示給輸入數據的用戶看的,所以我想大概是牛客網做的這個系統的問題,不必糾結,以後注意就行了。

總結

對機試題中所有需要輸入的內容,不要畫蛇添足添加輸入提示字符:

input(‘please input string:’)

直接用input()即可:

input()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章