Count Nice Pairs in an Array
You are given an array nums that consists of non-negative integers. Let rev(x) be the reverse of the non-negative integer x. For example, rev(123) = 321, and rev(120) = 21.
A pair of indices (i, j) is nice if it satisfies all of the following conditions:
0 <= i < j < nums.lengthnums[i] + rev(nums[j]) == nums[j] + rev(nums[i])
Return the number of nice pairs of indices. Since that number can be too large, return it modulo 10^9 + 7.
Example 1
Input
nums = [42,11,1,97]Output
2The two nice pairs are
(0, 3) because 42 + rev(97) = 121 and 97 + rev(42) = 121, and (1, 2) because 11 + rev(1) = 12 and 1 + rev(11) = 12.Example 2
Input
nums = [13,10,35,24,76]Output
4There are 4 pairs of indices that satisfy the nice pair condition.
Constraints
- 1 <= nums.length <= 10^5
- 0 <= nums[i] <= 10^9