Python程式:查詢首尾元素相同的子列表
假設我們有一個名為 nums 的數字列表,我們需要找到其中首元素和尾元素相同的子列表的個數。
例如,如果輸入為 nums = [10, 15, 13, 10],則輸出為 5,因為首尾元素相同的子列表有:[10],[15],[13],[10],[10, 15, 13, 10]。
為了解決這個問題,我們將遵循以下步驟:
num_sublists := nums 的大小
d := 一個空字典
對於 nums 中的每個數字 n,執行以下操作:
d[n] := d[n] + 1
對於 d 中每個數字 k 及其對應的頻率 v,執行以下操作:
如果 v 不等於 1,則
num_sublists := num_sublists + ((v-1) * (v) / 2 的商)
返回 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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP