Guest User

Untitled

a guest
Apr 24th, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.02 KB | None | 0 0
  1. # Enter your code here. Read input from STDIN. Print output to STDOUT
  2. def similarity(s1, s2):
  3.     i = 0
  4.     while i < len(s1) and i < len(s2) and s1[i] == s2[i]:
  5.         i += 1
  6.     return i
  7.  
  8.  
  9. def suffix_gen(s):
  10.     for i in range(len(s)):
  11.         yield s[i:]
  12.  
  13.        
  14. def similarity_sum(line):
  15.     return sum(similarity(line, suffix) for suffix in suffix_gen(line))
  16.  
  17.  
  18. def test_similarity():
  19.     assert similarity("abc", "abd") == 2
  20.  
  21.  
  22. def test_suffix_gen():
  23.     assert list(suffix_gen("ababaa"))\
  24.         == ["ababaa", "babaa", "abaa", "baa", "aa", "a"]
  25.  
  26. def test_similarity_sum():
  27.     assert similarity_sum("ababaa") == 11
  28.  
  29.  
  30. def main():
  31.     import sys
  32.     line_count_str = sys.stdin.readline()
  33.  
  34.     if line_count_str == "":
  35.         sys.exit()
  36.    
  37.     line_count = int(line_count_str)
  38.    
  39.     for i in range(line_count):
  40.         line = sys.stdin.readline()
  41.  
  42.         if line == "":
  43.             sys.exit()
  44.        
  45.         print similarity_sum(line.strip())
  46.  
  47.  
  48. if __name__ == '__main__':
  49.     main()
Add Comment
Please, Sign In to add comment