使用 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 函数的使用并创建了一个字典来存储镜像字符。

更新于:2023 年 10 月 16 日

348 次查看

开启你的 职业生涯

完成课程获得认证

开始学习
广告