2180. Count Integers With Even Digit Sum
Read the full problem statement on LeetCode.
Difficulty: easy Acceptance: 69% Topics: Math, Simulation
View full problem on LeetCode Reading material
Reference solution (spoiler · python)
# Time: O(logn)
# Space: O(1)
# math
class Solution(object):
def countEven(self, num):
"""
:type num: int
:rtype: int
"""
def parity(x):
result = 0
while x:
result += x%10
x //= 10
return result%2
return (num-parity(num))//2
# Time: O(nlogn)
# Space: O(1)
# brute force
class Solution2(object):
def countEven(self, num):
"""
:type num: int
:rtype: int
"""
def parity(x):
result = 0
while x:
result += x%10
x //= 10
return result%2
return sum(parity(x) == 0 for x in xrange(1, num+1))
# Time: O(nlogn)
# Space: O(logn)
# brute force
class Solution3(object):
def countEven(self, num):
"""
:type num: int
:rtype: int
"""
return sum(sum(map(int, str(x)))%2 == 0 for x in xrange(1, num+1))
Solution from kamyu104/LeetCode-Solutions · MIT