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