在本人堅持不懈的努力刷題下,終於發現題目的**了。
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 ...