【位元組跳動面試題】 擼它
阿新 • • 發佈:2020-07-18
牛客刷題偶遇 位元組後端筆試0715 擼它
一共兩道程式設計題。
1、 給定一個合法的計算表示式,該表示式只包括
0 1 2…9 + - ( )
這些字元,求判斷內部不包含減號的括號對數;
例子如下:
(1+(2+1)+(3+4)-5)
該計算表示式不包含減號的括號對數為2對;
思路:
利用棧先進後出的特點,除了有括號全部進棧,與右括號開始出棧,遇到減號當前一組括號不計數,但是為了後面計算方便,需要中間的字元都出棧直至遇到左括號。
執行順序:
(1+(2+1)+(3+4)-5)
(1++(3+4)-5)
(1++-5)
程式碼如下:
data = input() # 定義 左側為棧底 右側為棧頂 stack = [] count = 0 for cad in data: if cad == ")": flag = True while 1: try: temp = stack.pop() except: break if temp == "(": if flag: count += 1 break elif "0" <= temp <= "9" or temp == "+": pass else: flag = False else: stack.append(cad) print(count)
2、 給定若干行字串,每一行代表一個訪問記錄,每個記錄包含三個欄位:使用者id, 網址,訪問時長;
保證每個使用者對於某個網站的訪問記錄只有一條,求被訪問總時長大於180分鐘且訪問人數最多的網站;
輸入舉例:
12345 www.a.com 150
12346 www.a.com 150
12345 www.b.com 150
該輸入的輸出為:
www.a.com
思路:
這題更簡單一點,分割字串然後利用字典計數
程式碼如下:
url_dic = {} while 1: try: data = input() user_id, url, count = data.split() url_dic[url] = url_dic.get(url, 0) + int(count) except: break for url, count in url_dic.items(): if count > 180: print(url)
若是對你有幫助,點個讚唄!!
加入我們,,軟體測試交流,,。群。。642830685,領取最新軟體測試大廠面試資料和Python自動化、介面、框架搭建學習資料!一起交流學習進步