Posted on 2023-11-21 21:48
Uriel 閱讀(31)
評論(0) 編輯 收藏 引用 所屬分類:
數學 、
閑來無事重切Leet Code
給出一個數組,問其中有多少個a,b數對,符合a+rev(b)=b+rev(a),rev為數字反轉
a+rev(b)=b+rev(a) -> a - rev(a) + b - rev(b) = 0,所以預處理所有a-rev(a),然后用Counter計算每種value出現次數然后累加
#1814
#Runtime: 586 ms (Beats 78.13%)
#Memory: 23 MB (Beats 43.75%)
class Solution(object):
def countNicePairs(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
nums = [x - int(str(x)[::-1]) for x in nums]
ans = 0
for x in Counter(nums).values():
ans = (ans + (x - 1) * x // 2) % (10**9 + 7)
return ans