Skip to content

Instantly share code, notes, and snippets.

@matthewbordas
Created February 11, 2021 02:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save matthewbordas/6047852fd949923bfddac1afc3637e3b to your computer and use it in GitHub Desktop.
Save matthewbordas/6047852fd949923bfddac1afc3637e3b to your computer and use it in GitHub Desktop.
def find_longest_homopolymer(seq):
if seq == None or seq == '':
return 0
polymer_lengths = []
curr_len = 0
polymer_nt = seq[0]
for nt in seq:
if nt != polymer_nt:
polymer_lengths.append(curr_len)
polymer_nt = nt
curr_len = 1
else:
curr_len += 1
polymer_lengths.append(curr_len)
return max(polymer_lengths)
print(find_longest_homopolymer(None)) # 0
print(find_longest_homopolymer('')) # 0
print(find_longest_homopolymer('G')) # 1
print(find_longest_homopolymer('GGTT')) # 2
print(find_longest_homopolymer('CCCAAAA')) # 4
print(find_longest_homopolymer('AAAAAAAAAAG')) # 10
print(find_longest_homopolymer('TGGGGGGGGAGGGGGCGGG')) # 8
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment