程序查找在Python中第一个和最后一个值相同的子列表
假设我们有一个称为nums的数字列表,我们必须找到第一个元素和最后一个元素相同的子列表的数量。
因此,如果输入类似于nums=[10、15、13、10],则输出将为5,因为具有相同的第一个和最后一个元素的子列表是:[10],[15],[13],[10],[10、15、13、10]。
为了解决这个问题,我们将遵循以下步骤-
num_sublists:=nums的大小
d:=一个空的映射
对于每n个数字,执行
d[n]:=d[n]+1
对于d中元素的每个数字k和对应的频率v,
num_sublists:=num_sublists+((v-1)*(v)/2的商)
如果v与1不相同,则
返回num_sublists
让我们看下面的实现以更好地理解-
示例
from collections import defaultdict
class Solution:
def solve(self, nums):
num_sublists = len(nums)
d = defaultdict(int)
for n in nums:
d[n] += 1
for k,v in d.items():
if v != 1:
num_sublists += (v-1)*(v)//2
return num_sublists
ob = Solution()nums = [10, 15, 13, 10]
print(ob.solve(nums))输入值
[10, 15, 13, 10]
输出结果
5
热门推荐
10 儿子立冬祝福语简短独特
11 对当兵的祝福语简短
12 侄儿高考试祝福语简短
13 伴郎红包祝福语朋友简短
14 媳妇生日简短祝福语朋友
15 公司年会祝福语简短最好
16 元旦感恩祝福语简短大全
17 红包祝福语简短10字
18 周六早晨祝福语简短