813. 找到對映序列
中文english
給出了兩個a
和b
的列表,從a
對映到b
,b
是由a
的一種回文構詞法構成通過隨機化a
中元素的順序來實現的。
我們想要找到乙個指數對映p
,從a
到b
,對映p[i] = j
表示a
出現在b
中的第i
個元素。
這些列表a
和b
可能包含重複。如果有多個答案,輸出任何乙個。
樣例1
輸入: a =[12, 28, 46, 32, 50] 和 b =[50, 12, 32, 46, 28]
輸出: [1, 4, 3, 2, 0]
解釋:p[0] = 1,因為a的第0個元素出現在b[1], p[1] = 4,因為a的第乙個元素出現在b[4],以此類推。
樣例2
輸入: a = [1, 2, 3, 4, 5] 和 b = [5, 4, 3, 2, 1]
輸出: [4, 3, 2, 1, 0]
解釋:p[0] = 4,因為a的第0個元素出現在b[4], p[1] = 3,因為a的第乙個元素出現在b[3],以此類推。
a,b
的陣列長度相等,範圍[1,100]
。
a[i]
,b[i]
是整數範圍[0, 10^5]
。
classsolution:
"""@param a: lists a
@param b: lists b
"""'''
大致思路:
1.列表a和b長度一樣,初始化乙個,迴圈a,每在b中找到乙個的話,就替換掉,給出index
2.取出最後乙個重複的元素的索引,判斷如果count>1
''' res =
for i in
a: num = b.index(i,0
)
if b.count(i) > 1
: last_index = len(b) - b[::-1].index(i) - 1
elif b.count(i) == 1
: last_index =num
b[num] = 'y'
return res
lintcode 813 找到對映序列
給出了兩個a和b的列表,從a對映到b,b是由a的一種回文構詞法構成通過隨機化a中元素的順序來實現的。我們想要找到乙個指數對映p,從a到b,對映p i j表示a出現在b中的第i個元素。這些列表a和b可能包含重複。如果有多個答案,輸出任何乙個。樣例 樣例1輸入 a 12,28,46,32,50 和 b ...
找到對映序列
給出了兩個a和b的列表,從a對映到b,b是由a的一種回文構詞法構成通過隨機化a中元素的順序來實現的。我們想要找到乙個指數對映p,從a到b,對映p i j表示a出現在b中的第i個元素。這些列表a和b可能包含重複。如果有多個答案,輸出任何乙個。樣例1 輸入 a 12,28,46,32,50 和 b 50...
python 序列和對映 如何區分序列和對映
我想對乙個引數執行乙個操作,這個引數可能是乙個類似於對映的物件或乙個類似於序列的物件。我知道沒有一種策略是100 可靠的型別檢查,但我正在尋找乙個健壯的解決方案。在 基於這個answer,我知道如何確定某個東西是否是乙個序列,我可以在檢查物件是否是乙個對映之後進行這個檢查。在def ismap ar...