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
数据结构
网络
关系数据库管理系统(RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP