2020屆秋招中興筆試題

2021-09-27 12:32:31 字數 2485 閱讀 8066

在本人堅持不懈的努力刷題下,終於發現題目的**了。

leetcode題目為:49. 字母異位詞分組,有興趣的同學可以對比學習。

題目的大致意思是:

超市賣東西,然後統計那些商品相同的組合。

例如「abcd」 與「bacd」 是不同商品的組合,可以歸於同乙個類別;

要求統計出,出現次數多於一次的商品組合類別,有助於幫助商家進行決策,來更好的**。

num1 = 7

comid = ["abcd", "zesa", "saze", "abc", "pqrst", "cdab", "bacd"]

給定引數1    num1 代表的是所有的商品列表總數量

引數2是乙個列表,表示的是所有的商品的明細列表。

最終得出的結果為[["abcd","cdab", "bacd"],[ "zesa", "saze"]]

只有這兩個不同的商品組合類別出現次數多於一次,依照列表的列表來進行統計。

注意,前方高能,我要發大招了,開個玩笑。

def sumid(num1,comid):

list1 =

for i in range(num1):

# for i in range(len(comid)):

# 字串陣列的組內字元進行排序,每個陣列內的字串都進行按照字母順序進行排序。

dict = {} # 建立乙個空的字典。

for it in list1:

if it not in dict:

dict[it] = 1

else:

dict[it] += 1

# 用字典儲存相同的字串出現的次數。

list3 =

for key in dict:

if dict[key] > 1:

# 建立乙個列表儲存的是字串陣列**現次數大於1的那些字串。

b =

for j in range(len(list3)):

a =

for i in range(len(comid)):

if comid[i]==list3[j] or set(comid[i]) == set(list3[j]):

print(b)

return b

num1 = 7

comid = ["abcd", "zesa", "saze", "abc", "pqrst", "cdab", "bacd"]

sumid(num1, comid)

#以上是2023年的寫法,老太婆的纏腳布————又長又臭

#2023年,開啟新的一頁,願望中國平安,世界平安。

#下面是新的寫法:

from typing import list

class solution:

def groupanagrams(self, strs: list[str]) -> list[list[str]]:

mapx = dict()

for i in strs:

tmp = ''.join(sorted(list(i)))

if tmp in mapx.keys():

# 字典的值為乙個列表。

else:

mapx[tmp] = [i]

res =

for k,v in mapx.items():

if len(v)>1:

return res

if __name__ == "__main__":

s =solution()

list2 = ["abcd", "zesa", "saze", "abc", "pqrst", "cdab", "bacd"]

print(s.groupanagrams(list2))

##from typing import list

class solution:

def groupanagrams(self, strs: list[str]) -> list[list[str]]:

mapx = dict()

for i in strs:

tmp = ''.join(sorted(list(i)))

if tmp in mapx.keys():

# 字典的值為乙個列表。

else:

mapx[tmp] = [i]

list2 = list(mapx.values())

#通過呼叫python的過濾器來實現更好的過濾掉,把分組長度為1的內容來過濾掉。

newlist = list(filter(lambda x:len(x)>1,list2))

return newlist

if __name__ == "__main__":

s =solution()

list2 = ["eat", "tea", "tan", "ate", "nat", "bat"]

print(s.groupanagrams(list2))

2019 中興秋招筆試題1

2019.8.25中興 1.陣列按數字出現頻次排序 題意為從乙個亂序陣列中,將其中的整數按照出現的頻次多少來排列,比如輸入為 1,2,1,2,3,3,1,6,4,4,4,4 那麼輸出就應該為 4,4,4,4,1,1,1,2,2,3,3,6 其中,如果某兩個數字的出現頻次相同,那麼就按照輸入用例中的原...

2023年騰訊秋招筆試題 2020 08 22

給定乙個正整數,編寫程式計算有多少對質數的和等於輸入的這個正整數,並輸出結果。輸入值小於1000。如,輸入為10,程式應該輸出結果為2。共有兩對質數的和為10,分別為 5,5 3,7 include include include using namespace std const long lon...

筆試 2020貝殼秋招筆試題講解 原始碼

題目描述 給定乙個長度為n的字串,問至少替換多少個字元變換成回文串?分析解法 include using namespace std int main cout ans endl return 0 include using namespace std int main cout ans endl ...