Skip to content

Commit a74a76b

Browse files
authored
Create count-integers-with-even-digit-sum.py
1 parent c394bd4 commit a74a76b

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# Time: O(logn)
2+
# Space: O(1)
3+
4+
# math
5+
class Solution(object):
6+
def countEven(self, num):
7+
"""
8+
:type num: int
9+
:rtype: int
10+
"""
11+
def parity(x):
12+
result = 0
13+
while x:
14+
result += x%10
15+
x //= 10
16+
return result%2
17+
18+
return (num-parity(num))//2
19+
20+
21+
# Time: O(nlogn)
22+
# Space: O(1)
23+
# brute force
24+
class Solution2(object):
25+
def countEven(self, num):
26+
"""
27+
:type num: int
28+
:rtype: int
29+
"""
30+
def parity(x):
31+
result = 0
32+
while x:
33+
result += x%10
34+
x //= 10
35+
return result%2
36+
37+
return sum(parity(x) == 0 for x in xrange(1, num+1))
38+
39+
40+
# Time: O(nlogn)
41+
# Space: O(logn)
42+
# brute force
43+
class Solution3(object):
44+
def countEven(self, num):
45+
"""
46+
:type num: int
47+
:rtype: int
48+
"""
49+
return sum(sum(map(int, str(x)))%2 == 0 for x in xrange(1, num+1))

0 commit comments

Comments
 (0)