fork download
  1. def maxx(subs):
  2. al = {}
  3. for sub in subs:
  4. for s in sub:
  5. if not al.has_key(s): al[s] = 1
  6. else: al[s] += 1
  7. maxx = max(al.values())
  8. return filter(lambda item: item[1] == maxx, al.iteritems())
  9.  
  10.  
  11. def substrs(words):
  12. al = []
  13. if words:
  14. for word in words:
  15. subs, ii = [], 0
  16. for i, char in enumerate(word):
  17. try:
  18. if not subs:
  19. subs.append(char)
  20. if i != 0:
  21. ii += 1
  22. elif (char == word[i - 1]) and (char == word[i + 1]):
  23. subs[ii] += char
  24. else:
  25. subs.append(char)
  26. ii += 1
  27. except IndexError:
  28. subs[ii] += char
  29. al.append(subs)
  30. return maxx(al)
  31.  
  32. if __name__ == '__main__':
  33. print substrs(("abcbb",
  34. "abcabb",
  35. "bb"))
Success #stdin #stdout 0.02s 4676KB
stdin
Standard input is empty
stdout
[('a', 3), ('bb', 3)]