String mirror equality

... by Bittle in Programming Help January 12, 2021

Question:

Write a boolean recursive function receive two strings and checks if one is reflection of the other

Examples:

Strings are one mirror of the other:


"abcd" "dcba"

"$" "$"

"" "" (empty string)


Strings are not mirror one to the other:


"axcd" "dcba"



Write main function to check the strings to the output


("Reverse" must not be used)

Solution:

# recursive function to check if a == reflection of b
# abcd == dcba
# ascd != asrc
def is_mirror(a, b):
    if len(a) != len(b):
        # both strings must be the same length
        return False

    if a == "":
        # both string are empty, return true
        return True

    if a[0] == b[-1]:
        # first char of a == last char of b
        return is_reflection(a[1:], b[:-1])  # remove the first char of a, and remove the last char of b
    else:
        return False


if __name__ == '__main__':
    str1 = "dcba"
    str2 = "abcd"
    if is_mirror(str1, str2):
        print(str1 + " is a mirror of " + str2)
    else:
        print(str1 + " is not a mirror of " + str2)


Comments (0)

Search Here