A substring is a contiguous sequence of characters from a st

A substring is a contiguous sequence of characters from a string. For example, “cde” is a substring of
the string “abcdefg”. We say that substring s1 is duplicated in string s if s1 shows us in s at least two
times, without overlapping. For example, if s == “abcdefbcdgh” then there is a duplicated substring of
length 3: “bcd”. There is no duplicated substring of length 4 and higher.
a) Write an algorithm in pseudo-code (in file h2.doc) in a function find_dup_str(s, n) that determines
whether a string s contains a duplicated substring of a given length n and that returns the first
occurring substring of length n that is duplicated (if any) or the empty string, otherwise. For the
example above (s == “abcdefbcdgh”) with substring length 3, the substring to be returned is “bcd“.
With length 2, the algorithm returns “bc”, and not “cd”. For this value of parameter s, if the length
parameter is 4 or more, the algorithm returns “”.
Write an algorithm, not a Python program.
To get full credit make sure the algorithm has ALL the features required, as explained in the class
material.
b) Create a new file p2.py where you write a Python function find_dup_str(s, n) that implements the
algorithm from part a). Parameter s is the original string and n is the length of the substring to look for.
Your implementation must use string slicing.
In file p2.py write after the function definition some code that reads a string and a number from the
terminal, and then calls find_dup_str(s, n) and prints the result. Use this for testing.

Solution

def find_dup_str(s, n):
    for index in range(len(s)-n+1):
        temp_string = s[index:index+n]
        updated_string = s[index+n:]
        if updated_string.find(temp_string) != -1 and len(updated_string) != 0:
            return temp_string
    return \"\"


def find_max_dups(s):
    if len(s) > 1:
        for i in range(len(s)):
            if find_dup_str(s, i) != \"\":
                longest_dup = find_dup_str(s, i)
        return longest_dup
    else:
        return \"\"

while True:
    base_string = input(\"Enter a string to search through: \")
    substring_length = int(input(\"Enter a substring length: \"))
    print(find_dup_str(base_string, substring_length))
    print(find_max_dups(base_string))

A substring is a contiguous sequence of characters from a string. For example, “cde” is a substring of the string “abcdefg”. We say that substring s1 is duplica

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site