给定两个列表,每个列表都不含有重复元素,但两个列表之间可能包含有共同元素,请计算两个列表中共同元素的最小索引之和,并以列表的形式,返回对应的元素,如果两个列表没有共同元素,则返回空列表。
例如:
给定两个列表:list1=['hello', 'word', '222', 'hi', 'good'], list2=['first', 'hi', 'good', 'WORD', 'hello']
返回结果:['hi', 'hello']说明:两个列表存在 3 个共同元素,这3个元素对应的索引之和分别为 0+4、3+1、4+2,所以最小索引之和为 4 ,对应的重复元素是 ['hi', 'hello']
给定两个列表:list1=['hello', 'word'], list2=['first', 'hi']
返回结果:[]说明:两个列表不存在共同元素,直接返回空列表。
def findRestaurant(self, list1, list2): tmp_set = set(list1) & set(list2) if len(tmp_set) == 0: return [] tmp_dict1 = {list1[i]: i for i in range(len(list1))} tmp_dict2 = {list2[i]: i for i in range(len(list2))} index_sum_dict = {i: (tmp_dict1.get(i) + tmp_dict2.get(i)) for i in tmp_set} min_index_sum = min(list(index_sum_dict.values())) return [i for i in tmp_set if index_sum_dict.get(i) == min_index_sum]