Advertisement
gruntfutuk

longest alpa str

Nov 8th, 2020
698
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.65 KB | None | 0 0
  1. from collections import namedtuple
  2.  
  3. def longest_alpha_str(source):
  4.  
  5.     def chunks(source):
  6.         newstr = prev = ""
  7.         for ch in source + chr(0):
  8.             if ch >= prev:
  9.                 newstr += ch
  10.                 prev = ch
  11.             else:
  12.                 yield newstr
  13.                 newstr = prev = ch
  14.  
  15.     Chunk = namedtuple('Chunk', 'chunk length')
  16.     lengths = (Chunk(chunk, len(chunk)) for chunk in chunks(source))
  17.     return max(lengths, key=lambda chunk: chunk.length).chunk
  18.  
  19. tests = 'azcbobobegghakl', 'abcdabghikmnastuvwx','abcdefhiabcdefhiklnprst'
  20.  
  21. for test in tests:
  22.     print(test, '->', longest_alpha_str(test))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement