47 lines
915 B
Python
47 lines
915 B
Python
# 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()
|