假設已知有m個群,其中乙個人把一條訊息發到他自己所在的所有群裡,這些群裡面的每個人又將訊息再次**到他自己所在的群裡,問最後有幾個人收到了該訊息。
在群這一層級上進行操作:將所有群組儲存於乙個list,通過剔除收到訊息的群來實現對收到訊息的人刪減,最後將總人數與剩餘人數相減完**數統計。相較對人做操作,實現起來更簡單。
first_name =
input()
num =
int(
input()
)#初始化:群組的列表;所有人名的集合;第乙個人發出資訊後收到資訊的人的集合;最終未收到資訊的人的集合
club_list, name_set, mes_set, res_set =
list()
,set()
,set()
,set()
for i in
range
(num)
:#讀入群組列表
name_list =
input()
.split(
",")
name_set.update(name_list)
for club in club_list:
#將第乙個人所在的群組從club_list移除並獲取mes_set
if first_name in club:
mes_set.update(club)
#獲取mes_set
club_list.remove(club)
#將第乙個人所在的群從club_list移除
for name in mes_set:
#將mes_set中所有人名所在群組從club_list移除
for club in club_list:
if name in club:
club_list.remove(club)
for club in club_list:
#獲取剩餘群組中人名的集合
res_set.update(club)
print
(len
(name_set)
-len
(res_set)
)#輸出處理前後集合人數差
華為機試題
今天去華為機試,感覺是再謹慎都不為過啊!zc前一天晚上還跟我強調了判空,記憶體釋放。前兩題都是基本題,後面一題不會。1 輸入兩個數 反轉相加的和輸出。2 三天打漁兩天曬網 從1990 年1月1日開始 打漁輸出fishing 曬網輸出sleeping 我因為printf的是fishing sleepi...
華為機試題
通過鍵盤輸入一串小寫字母 a z 組成的字串。請編寫乙個字串壓縮程式,將字串中連續出席的重複字母進行壓縮,並輸出壓縮後的字串。壓縮規則 1.僅壓縮連續重複出現的字元。比如字串 abcbc 由於無連續重複字元,壓縮後的字串還是 abcbc 2.壓縮欄位的格式為 字元重複的次數 字元 例如 字串 yyy...
華為機試題
1.輸入乙個字串,將字串中的非字母字元刪除,保留字串中的小寫字母,將大寫字母變為小寫字母,然後輸出字串。比如 輸入 sdf sfjadf sdf 輸出 sdfsfjadfsdf 2.n進製數求和,輸入乙個整數n 2 n 35 兩個字串,字串中的字元一定是0 9或者a z 10 35 中的,輸出兩個字...