Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Enter your code here. Read input from STDIN. Print output to STDOUT
- def similarity(s1, s2):
- i = 0
- while i < len(s1) and i < len(s2) and s1[i] == s2[i]:
- i += 1
- return i
- def suffix_gen(s):
- for i in range(len(s)):
- yield s[i:]
- def similarity_sum(line):
- return sum(similarity(line, suffix) for suffix in suffix_gen(line))
- def test_similarity():
- assert similarity("abc", "abd") == 2
- def test_suffix_gen():
- assert list(suffix_gen("ababaa"))\
- == ["ababaa", "babaa", "abaa", "baa", "aa", "a"]
- def test_similarity_sum():
- assert similarity_sum("ababaa") == 11
- def main():
- import sys
- line_count_str = sys.stdin.readline()
- if line_count_str == "":
- sys.exit()
- line_count = int(line_count_str)
- for i in range(line_count):
- line = sys.stdin.readline()
- if line == "":
- sys.exit()
- print similarity_sum(line.strip())
- if __name__ == '__main__':
- main()
Add Comment
Please, Sign In to add comment