Skip to content

Instantly share code, notes, and snippets.

@chaps
Last active September 26, 2020 15:04
Show Gist options
  • Save chaps/0290c3a26dd6c98a1b4303fd24b78215 to your computer and use it in GitHub Desktop.
Save chaps/0290c3a26dd6c98a1b4303fd24b78215 to your computer and use it in GitHub Desktop.

Revisions

  1. chaps revised this gist Sep 26, 2020. 1 changed file with 66 additions and 1 deletion.
    67 changes: 66 additions & 1 deletion max_consec_repeating_char.py
    Original file line number Diff line number Diff line change
    @@ -1 +1,66 @@
    #
    """
    Test:
    Write a program that finds maximum consecutive repeating character in a string.
    Given string: “aaabbbbbcddeeefff”.
    Output of the program must return the character and the length of its biggest repeating sequence.
    Output example:
    Character: p
    Length of the sequence: 8
    """


    def result_output(key, value):
    """ Outputs the excercise results with the requested format
    """
    result_format = """Character: {}
    Length of the sequence: {}
    """
    return result_format.format(key, value)



    def biggest_repeating_sequence(input_string):
    """ Given a string return the maximum consecutive repeating
    character in the string.
    """
    max_values = (None, 0)
    tmp = (None, 0)
    for char in input_string:
    # Update tmp (increase the counter)
    # or set the new char and sets the counter to 1
    tmp = (char, 1) if char != tmp[0] else (char, tmp[1]+1)

    # Update max_values in case
    # the current value of tmp is greater than the max_value

    # Greater than will return the first biggest repeating sequence
    # greater than equals will return the last biggest repeating sequence
    if tmp[1] > max_values[1]:
    max_values = char, tmp[1]
    return max_values



    def main():
    samples = [
    "aaabbbbbcddeeefff",
    "a",
    "",
    "aaaabbbb",
    "aaabb",
    "aabbb",
    "abbcccdddd",
    "ddddcccbba"
    "ddddcccbbaeeeeeffggg"
    ]
    for sample in samples:
    print("Input: ", sample)
    res = biggest_repeating_sequence(sample)

    print("Result: ", res)
    print(result_output(*res))


    if __name__ == "__main__":
    main()

  2. chaps created this gist Sep 26, 2020.
    1 change: 1 addition & 0 deletions max_consec_repeating_char.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1 @@
    #