813 找到對映序列

2022-02-15 03:42:45 字數 1401 閱讀 5044

813. 找到對映序列

中文english

給出了兩個ab的列表,從a對映到bb是由a的一種回文構詞法構成通過隨機化a中元素的順序來實現的。

我們想要找到乙個指數對映p,從ab,對映p[i] = j表示a出現在b中的第i個元素。

這些列表ab可能包含重複。如果有多個答案,輸出任何乙個。

樣例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]

class

solution:

"""@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...