Python程序:查找字符串中的镜像字符


本文将教你如何编写一个Python程序来查找字符串中的镜像字符。

让我们首先了解什么是字符串中的镜像字符。从前面和后面分别取一个字母顺序相同位置的两个相同的字符,被称为镜像字符。例如,字母'a'的镜像字符是'z','b'的镜像字符是'y',以此类推。

输入-输出场景

下面是一个字符串中镜像字符的输入和输出示例:

Input: p = 3
Input string = Coding
Output: Cowrmt

这里,字符串“coding”中的字母“d”、“i”、“n”、“g”分别位于第4、9、14和7个位置。因此,它们的镜像字符“w”、“r”、“m”、“t”也分别位于字母表反向顺序的第4、9、14和7个位置。由于“p”的位置等于3,所以它从字符串“Coding”的第三个位置开始。

使用循环

解决这个问题的一种方法是使用简单的循环,下面是一个算法:

算法

  • 输入字符串和需要镜像字符的位置。

  • 创建一个按字母顺序排序的字符串进行存储。

  • 创建一个空字符串。

  • 然后沿着每个字符移动到我们需要镜像的位置,保持直到该位置的所有内容不变。

  • 我们从那里开始反转字母顺序,一直持续到字符串的末尾。

  • 返回该字符串。

示例

以下是一个使用循环查找字符串中镜像字符的示例:

def mirror_characters(string, x): # Create a string with reversed alphabetical order alphabet = "zyxwvutsrqponmlkjihgfedcba" z = len(string) # Reversing the alphabetical order of the string from the given position leaving the rest unchanged result = "" for i in range(0, x): result = result + string[i]; for i in range(x, z): result = (result + alphabet[ord(string[i]) - ord('a')]); return result; # The driver code string = input("Enter the string name ::>") x = int(input("Enter the position to start from ::>")) result = mirror_characters(string, x - 1) print("The Result is ::>",result)

输出

以下是上述代码的输出:

Enter the string name ::>TutorialsPoint
Enter the position to start from ::>4
The Result is ::> Tutlirzohqlrmg

使用字典

我们将使用字典的思想在Python中完成这项工作。我们将创建一个字符的字母字典,并将其映射到反向的字符。然后,使用字典,我们将迭代从字符串的第k个位置开始的字符,并将它们转换为它们的镜像值。

算法

为了更好地理解该策略,请遵循以下算法:

  • 创建一个函数,镜像第n个位置之后的字符。

  • 设置正确的反向和字母顺序的变量。

  • 构建一个字典。

  • 字符串必须在n处分成两部分。

  • 在遍历字符串的第二部分时,镜像每个字符。

  • 应该连接第一个字符串和镜像后的字符串。

  • 因此,连接字符串后打印。

  • 创建一个字符串和n值。

  • 在函数中,传递字符串和n。

示例

为了了解上述策略是如何实现的,请查看下面的程序。我们使用`dict()`和`zip()`方法构建了一个字典,字母字符作为键,反向字符作为值。

def MirrorCharacter(str,n): # creating the dictionary alphabetical_order = 'abcdefghijklmnopqrstuvwxyz' reverse_alphabetical_order = 'zyxwvutsrqponmlkjihgfedcba' dictionaryCharacters = dict(zip(alphabetical_order,reverse_alphabetical_order)) # dividing the string at n prefix = str[0:n-1] suff = str[n-1:] mirror = '' # changing the suffix into mirror characters for i in range( len(suff)): mirror = mirror + dictionaryCharacters[suff[i]] # joining the prefix and the mirrored part return (prefix+mirror) string = 'Tutorialspoint' n = 6 print("The mirrored value is: ",MirrorCharacter(string,n))

输出

以下是上述代码的输出:

The mirrored value is:  Tutorr

示例

以下是一个使用字典查找字符串中镜像字符的示例:

dictionaryCharacters = dict( zip( 'abcdefghijklmnopqrstuvwxyz', 'zyxwvutsrqponmlkjihgfedcba' ) ) def mirror(str, x): str = list(str) for i in range(x-1, len(str)): print(i, str[i], dictionaryCharacters[str[i]]) str[i] = dictionaryCharacters[str[i]] return ''.join(str) assert mirror('Tutorialspoint', 6), 'stipulation' assert mirror('Incomprehensibility', 8), 'prominence'

输出

以下是上述代码的输出:

5 i r
6 a z
7 l o
8 s h
9 p k
10 o l
11 i r
12 n m
13 t g
7 e v
8 h s
9 e v
10 n m
11 s h
12 i r
13 b y
14 i r
15 l o
16 i r
17 t g
18 y b

更新于:2022年11月23日

3K+ 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.