Guest User

Untitled

a guest
Dec 12th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.53 KB | None | 0 0
  1. #!/usr/bin/python
  2.  
  3. import sys, time
  4.  
  5. start_time = time.time()
  6. def log_elapsed(msg):
  7. global start_time
  8. e = time.time() - start_time
  9. print '%2.4f %s' % (e,msg)
  10. start_time = time.time()
  11.  
  12. def count_string(line):
  13. i = 0
  14. for i in xrange(len(line[0])):
  15. letters = [0] * 26
  16. #print "i = ", i
  17. for word in line:
  18. # print "word = ", word
  19. if i > len(word)-1:
  20. break
  21. letters[ord(word[i]) - 97] += 1
  22. print "%5d - %-3s" % (i, chr(letters.index(max(letters)) + 97))
  23. yield chr(letters.index(max(letters)) + 97)
  24.  
  25. def max_chars(line):
  26. line = line.split()
  27. line.sort()
  28. line.sort(key=len, reverse=True)
  29. return [val for val in count_string(line)]
  30. log_elapsed("Complete: ")
  31.  
  32. import unittest
  33.  
  34. class TestStringCount(unittest.TestCase):
  35.  
  36. def test_count(self):
  37. self.assertEqual(max_chars("foo foo foo bar foobar baz foobaz alta beta"),\
  38. ['f','o','o','a','a','r'])
  39. self.assertEqual(max_chars("a man a plan a canal panama"),\
  40. ['a','a','n','a','l','a'])
  41.  
  42. if __name__ == "__main__":
  43. suite = unittest.TestLoader().loadTestsFromTestCase(TestStringCount)
  44. unittest.TextTestRunner(verbosity=2).run(suite)
  45.  
  46. # Uncomment to get input from stdin
  47. # for line in sys.stdin.readlines():
  48. # # could sort here first by length of words
  49. # print "line = ", line
  50. # count_string(line)
Add Comment
Please, Sign In to add comment