演算法崗筆試題 找出符合條件的字串組合

2021-10-08 07:12:29 字數 1609 閱讀 8863

某公司經理希望在聖誕節期間通過**組合裝來提高公司商品的銷售量。組合裝裡有不同種類的商品,以不同順序排列。每個商品都有唯一的characterid。而每個組合裝也有唯一的comboid,由組合裝中各種商品的排列順序表示。組合裝的comboid是通過將組合裝中商品的characterid按其在組合裝中的排列順序形成的。例如,如果購買了id為a、a、b和c的商品,且組合裝中的排列順序與此相同,則comboid是aabc。

由於商品是以組合裝形式銷售,因此經理想要找出所有暢銷的組合裝。如果有一位以上的顧客購買一款組合裝,就認為該組合裝暢銷。他想要獲得具有與此相同的商品構成的組合裝的comboid的字串列表。

輸入:

輸出:

注意:組合裝的comboid為小寫;輸出應按照comboid在輸入列表**現的順序排列。

示例:

說明:comboid為「abcd」,「cdab」,「bacd」的組合裝含有相同商品;並且comboid為「zesa」和「saze」的組合裝含有相同商品。

解答思路

**實現(python3)

'''

#列表輸入

input_list=

for i in range(int(input())):

print('輸入列表:',input_list)

'''#將輸入的列表排序

input_list=

['abcd'

,'zesa'

,'saze'

,'abc'

,'pqrst'

,'cdab'

,'bacd'

]sorted_list=

for s in input_list:

s_sort=

sorted

(s)''

.join(s_sort)

)print

('排序後的列表:'

,sorted_list)

#頻率統計

s_dict=

for i in sorted_list:

if i in s_dict:

s_dict[i]+=1

else

: s_dict[i]=1

print

('字串頻率統計字典:'

,s_dict)

#將符合條件的輸出

output_list=

for key,values in s_dict.items():

if values>1:

temp=

for j in

range

(len

(sorted_list)):

if sorted_list[j]

==key:

)print

('輸出列表:'

演算法整理 2015騰訊開發崗筆試題

打擂演算法 傳送門 該演算法很好地將一般需要o nlogn 時間複雜度得到的結果減少成o n 但是前提條件是出現最多的數的出現次數大於 不包括等於 集合中個數的一半。float mostelement vectorv int count 0 float m for int i 0 i 該演算法的關鍵...

vivo2023年 演算法崗筆試題

題目描述 小v在公司負責遊戲運營,今天收到款申請新上架的遊戲 跳一跳 為了確保提供給廣大玩家朋友們的遊戲都是高品質的,按照運營流程小v必須對新遊戲進行全方位了解體驗和評估。這款遊戲的規則如下 有n個盒子排成了一行,每個盒子上面有乙個數字a i 表示在該盒子上的人最多能向右移動a i 個盒子 比如當前...

網易演算法崗2018秋招兩道筆試題

1.小易立方體 每次操作從某塔上取下一塊立方體放到lingyige塔上 其中最高的塔減去最低的塔為不穩定值 輸入 n,k分別為塔數和最大操作次數 輸出 不穩定值,操作次數 每次操作的塔位置 分析 對每次操作暴力遍歷最大值和最小值 最大值 1,最小值 1 邊界條件 直至操作次數num k或者不穩定值為...