-
Notifications
You must be signed in to change notification settings - Fork 2
/
div_by_3_google.py
65 lines (60 loc) · 2.26 KB
/
div_by_3_google.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import unittest
class solution:
def reverse_divisible(self,string):
self.string = string
if self.string == "":
return ""
else:
self.div_by_3 = []
for i in xrange(len(self.string)-1):
if int(self.string[i])==0 or int(self.string[i])%3==0:
self.div_by_3.append(self.string[i])
else:
continue
print self.div_by_3
for i in xrange(len(self.string)-1):
if int(self.string[i])%3==0:
#self.string[i] = self.div_by_3.pop() # this is not possible because strings in python are immutable
self.string = self.string[:i]+self.div_by_3.pop()+self.string[i+1:]
else:
continue
return self.string
class TestSolution(unittest.TestCase):
my_solution = solution()
def test_basic_input(self):
self.assertEqual(self.my_solution.reverse_divisible("1234567890"),"1204597863")
# def test_empty_string(self):
# self.assertEquals(self.my_solution.reverse_divisible(""),"")
#
# def test_all_div_by(self):
# self.assertEquals(self.my_solution.reverse_divisible("03690369"),"")
#
# def test_long_string(self):
# self.assertEquals(self.my_solution.reverse_divisible("369036903690369036903690369036903690369"),"369036903690369036903690369036903690369")
#
# def test_negative_numbers(self):
# self.assertEquals(self.my_solution.reverse_divisible("-34574684"),"-34574684")
#
# def test_zero_padding(self):
# self.assertEquals(self.my_solution.reverse_divisible("000034574684"),"000034574684")
#
# def test_float_numbers(self):
#
# self.assertEquals(self.my_solution.reverse_divisible("3457464.36938"),"3457464.36938")
#
# def test_alphanumberic(self):
# self.assertEquals(self.my_solution.reverse_divisible("abcddjh.#$#@%"),"abcddjh.#$#@%")
#
# def test_with_nothing_to_reverse(self):
# self.assertEquals(self.my_solution.reverse_divisible("54217887"),"54217887")
#
# def test_with_leading_spaces(self):
# self.assertEquals(self.my_solution.reverse_divisible(" 54217887")," 54217887")
#
# def test_with_spaces_on_both(self):
# self.assertEquals(self.my_solution.reverse_divisible(" 54217887 ")," 54217887 ")
#
# def test_with_zeroes_and_spaces(self):
# self.assertEquals(self.my_solution.reverse_divisible(" 00000054217 ")," 00000054217 ")
if __name__ == "__main__":
unittest.main()