真實華爲機考題分享

這是本人真實經歷過的華爲的機考題,一共兩道,要求90分鐘內答完。其中第一道沒問題,100%經過率,第二道是80%經過率,找了大半個多小時,也沒找出問題所在來,無奈放棄。你們能夠幫忙看下問題在哪,能夠直接在文章下方直接評論。

1.字符串操做

題目描述:給定兩個字符串a b,注意:其中a字符串中有空格。求b字符串在a字符串中出現的次數。例:python

輸入:a="abc cc d",b="cc"。數組

輸出:b在a中出現次數爲:2次
 code

這個題很簡單,把a中空格去掉,而後再拿b中字符到a中一一進行比對。中間可以使用一變量flag,若是出現不一致狀況,flag就置爲False。若是全程一致,即判斷結束後flag依然爲True,那麼就記+1,繼續判斷。orm

注意特殊狀況的處理:好比b字符串比a字符串要長的狀況,還有b字符串比a字符串剩餘要比對的字符串長的狀況。我當時寫的代碼以下:字符串

# 外層套一個while,目的是爲了適應多組輸入
while True:
    try:
        a = input().split()
        b = input()
        a = "".join(a)
        res = 0
        la = len(a)
        lb = len(b)
        # 若是輸入的b字符串比a字符串還長,就直接break
        if lb > la:
            break
        # 注意b字符串的末尾對齊a字符串的末尾
        for i in range(la-lb+1):
            flag = True
            # 逐個判斷,若是中途遇到不相等的狀況,就跳出內層循環
            for j in range(lb):
                if a[i+j] != b[j]:
                    flag = False
                    break
            if flag:
                res += 1
        print(res)
    except Exception as e:
        break

 

 

2.舞會來賓統計

題目描述:這個原題目描述很長啊,我這裏簡單歸納一下。就是主辦方要在12:00-20:00之間要舉辦舞會,要求在門口處統計來賓的到達時間與預計離開時間,由於舞會最大隻能容納100人(注意這裏,我代碼只經過80%樣例可能就是由於這裏100人沒處理好)。好比統計格式爲:12:00-14:00,意思是這我的是12:00-13:00之間來的,預計13:00-14:00之間會離開。看樣例(遇到-1時結束輸入):input

輸入: (13,15)
   (13,14)
   (14,16)
   (14,20)
   -1it

輸出: 12:00-13:00 0
   13:00-14:00 2
   14:00-15:00 3
   15:00-16:00 2
   16:00-17:00 1
   17:00-18:00 1
   18:00-19:00 1
   19:00-20:00 1
 
個人想法是:先用一個列表將這些輸入存起來,而後再構建一個列表用來存儲結果,最後格式化輸出一會兒。io

我寫的代碼以下,你們能夠幫我挑挑毛病:form

while True:
    try:
        # 構建一個結果數組
        res = [0 for i in range(8)]
        while True:
            num = input()
            if num == "-1":
                break
            num1,num2 = num.split(",")
            low = int(num1)-12
            high = int(num2)-12
            # 這裏寫得很差,總感受不對。
            if max(res) == 100:
                break
            for i in range(low, high):
                res[i] += 1
        x = len(res)
        # 格式化輸出
        for j in range(x):
            print("{0}:00-{1}:00 {2}".format(j+12,j+13, res[j]))

    except Exception as e:
        print(e)
        break
相關文章
相關標籤/搜索