hackerrank string exercise
This commit is contained in:
parent
4725533380
commit
cd0523bb80
|
|
@ -0,0 +1,46 @@
|
||||||
|
# Algorithms > Strings > Mars Exploration
|
||||||
|
# https://www.hackerrank.com/challenges/mars-exploration
|
||||||
|
|
||||||
|
import unittest
|
||||||
|
import numpy as np
|
||||||
|
|
||||||
|
''' O(n), O(n)
|
||||||
|
def difference(s):
|
||||||
|
inputs = 'SOS' * int(len(s)/3)
|
||||||
|
|
||||||
|
if s is inputs:
|
||||||
|
return 0
|
||||||
|
|
||||||
|
count = 0
|
||||||
|
for a, b in zip(inputs, s):
|
||||||
|
if a != b:
|
||||||
|
count += 1
|
||||||
|
|
||||||
|
return count
|
||||||
|
'''
|
||||||
|
|
||||||
|
# O(n/3), O(1)
|
||||||
|
def difference(s):
|
||||||
|
count = 0
|
||||||
|
for i in range(0, len(s), 3):
|
||||||
|
if s[i] != 'S':
|
||||||
|
count += 1
|
||||||
|
if s[i+1] != 'O':
|
||||||
|
count += 1
|
||||||
|
if s[i+2] != 'S':
|
||||||
|
count += 1
|
||||||
|
return count
|
||||||
|
|
||||||
|
class Test(unittest.TestCase):
|
||||||
|
|
||||||
|
data = [('SOS', 0),
|
||||||
|
('SOA', 1),
|
||||||
|
('SOSSASSEDAAA', 6)]
|
||||||
|
|
||||||
|
def test(self):
|
||||||
|
for test_string in self.data:
|
||||||
|
res = difference(test_string[0])
|
||||||
|
self.assertEqual(res, test_string[1])
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
unittest.main()
|
||||||
Loading…
Reference in New Issue