使用 Python 查找字符串的镜像图像
在给定的问题陈述中,我们需要借助 Python 代码找到给定字符串的镜像图像。
理解问题
手头的问题是找到给定字符串的镜像图像。镜像图像是给定字符串的更改版本,其中每个字符都被替换为该字符的镜像图像。或者我们可以说它是字符串的反射。在现实生活中,我们在镜子里看到自己,所以我们的右侧在镜子的左侧可见,类似地,右侧在左侧显示。
输入-输出场景
以下是给定字符串的镜像图像的输入和输出示例:
Input string = TUTOR Output string: ROTUT
上述问题的逻辑
为了解决这个问题,我们首先将使用 Python 的 reversed 函数反转给定的字符串。然后,我们将用相应字符的镜像图像替换每个字符。
算法
步骤 1 - 定义名为 get_mirror_image 的函数。并传递一个名为 str 的参数。
步骤 2 - 将镜像字符字典定义为 mirror_chars,这将包含所有镜像字符作为字典。
步骤 3 - 迭代反转后的字符串,并使用上述字典中对应的镜像图像替换字符。
步骤 4 - 使用 reversed 函数反转输入字符串。并将镜像字符串存储在 mirror_string 变量中。
步骤 5 - 现在获取用户的输入并打印原始字符串和镜像字符串。
示例
def get_mirror_image(str): mirror_chars = { 'A': 'A', 'B': 'B', 'C': 'C', 'D': 'D', 'E': 'E', 'F': 'F', 'G': 'G', 'H': 'H', 'I': 'I', 'J': 'J', 'K': 'K', 'L': 'L', 'M': 'M', 'N': 'N', 'O': 'O', 'P': 'P', 'Q': 'Q', 'R' : 'R', 'S': 'S', 'T': 'T', 'U': 'U', 'V': 'V', 'W': 'W', 'X': 'X', 'Y': 'Y', 'Z': 'Z', ' ': ' ', 'a': 'a', 'b': '', 'c':'c', 'd':'d', 'e':'e', 'f':'f', 'g':'g', 'h':'h', 'i':'i', 'j':'j', 'k':'k', 'l':'l', 'm':'m', 'n':'n', 'o':'o', 'p':'p', 'q':'q', 'r':'r', 's':'s', 't':'t', 'u':'u', 'v':'v', 'w':'w', 'x':'x', 'y':'y', 'z':'z' } # Reverse and replace characters with their mirror characters mirror_string = ''.join(mirror_chars.get(char, '') for char in reversed(str)) return mirror_string # Testing the function original_string = input("Enter a String: ") mirror_string = get_mirror_image(original_string) print("Your String is: ", original_string) print("Mirror image of your string: ", mirror_string)
输出
Enter a String: Tutorialspoint Your String is: Tutorialspoint Mirror image of your string: tniopslairotuT
复杂度
在代码中,我们使用了字典来存储所有镜像字符。并获取了用户的字符串输入。因此,根据输入,假设其大小为 n,则时间复杂度为 O(n)。因为我们使用了 reversed 函数来反转给定的字符串,并且它正在迭代字符串 O(n) 次。并且在定义的字典中检查镜像字符需要 O(1) 的时间,即常数时间。所以总体复杂度为 O(n)。
结论
代码已成功找到给定字符串的镜像图像。正如我们学习了 Python reversed 函数的使用并创建了一个字典来存储镜像字符。
广告