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.