在 Python 中计算数组中好的对的程序
假设我们有一个名为nums的数组,其中包含非负值。我们必须找到数组中存在的好对索引,如果答案太大,则返回答案mod10^9+7。这里一对索引(i,j)在满足所有这些条件时被认为是好的:1.0<=i 注意-这里rev()仅反转整数的正数部分,因此如果rev(564)存在,则表示465,但如果rev(540)存在,则返回45。 因此,如果输入类似于nums=[97,2,42,11],那么输出将为2,因为有两对(0,2)和(1,3),对于第一个[97+rev(42)=97+24=121,和42+rev(97)=42+79=121]和第二个[2+rev(11)=2+11=13和11+rev(2)=13]。 让我们看看以下实现以获得更好的理解-示例
from collections import defaultdict
def solve(nums):
m = (10**9)+7
dic = defaultdict(int)
for num in nums:
rev=int(str(num)[::-1])
dic[num-rev]+=1
res=0
for val in dic.values():
res += (val*(val-1)) //2
return res % m
nums = [97,2,42,11]
print(solve(nums))
输入
[97,2,42,11]输出结果
2
热门推荐
10 儿子立冬祝福语简短独特
11 对当兵的祝福语简短
12 侄儿高考试祝福语简短
13 伴郎红包祝福语朋友简短
14 媳妇生日简短祝福语朋友
15 公司年会祝福语简短最好
16 元旦感恩祝福语简短大全
17 红包祝福语简短10字
18 周六早晨祝福语简短