📜  镜像字符的字符串

📅  最后修改于: 2022-05-13 01:57:08.314000             🧑  作者: Mango

镜像字符的字符串

给定一个字符串和一个数字 N,我们需要按照字母顺序从第 N 个位置到字符串的长度镜像字符。在镜像操作中,我们将“a”更改为“z”,将“b”更改为“y”,依此类推。
例子:

Input : N = 3
        paradox
Output : paizwlc
We mirror characters from position 3 to end.

Input : N = 6
        pneumonia
Output : pnefnlmrz

下面是不同的字符和他们的镜子。
a b c d e f g h i j k l m || n o p q r s t u v w x y z
镜像字母顺序意味着a对应于zb对应于y 。这意味着第一个字符成为最后一个字符,依此类推。现在,为了实现这一点,我们维护一个包含小写英文字母的字符串(或字符数组)。现在从轴心点到长度,我们可以通过使用字符的 ASCII 值作为索引来查找字符的逆字母顺序。使用上述技术,我们将给定的字符串转换为所需的字符串。

C++
// C++ code to find the reverse alphabetical
// order from a given position
#include 
#include 
using namespace std;
 
// Function which take the given string
// and the position from which the reversing shall
// be done and returns the modified string
string compute(string str, int n)
{
    // Creating a string having reversed alphabetical order
    string reverseAlphabet = "zyxwvutsrqponmlkjihgfedcba";
    int l = str.length();
 
    // The string up to the point specified in the question,
    // the string remains unchanged and from the point up to
    // the length of the string, we reverse the alphabetical
    // order
    for (int i = n; i < l; i++)
        str[i] = reverseAlphabet[str[i] - 'a'];
 
    return str;
}
 
// Driver function
int main()
{
    string str = "pneumonia";
    int n = 4;
    string answer = compute(str, n - 1);
    cout << answer;
    return 0;
}


Java
// Java code to find the reverse alphabetical
// order from a given position
import java.io.*;
 
class GeeksforGeeks {
 
    // Function which take the given string
    // and the position from which the reversing shall
    // be done and returns the modified string
    static String compute(String str, int n)
    {
 
        // Creating a string having reversed alphabetical order
        String reverseAlphabet = "zyxwvutsrqponmlkjihgfedcba";
        int l = str.length();
         
        // The string up to the point specified in the question,
        // the string remains unchanged and from the point up to
        // the length of the string, we reverse the alphabetical order
        String answer = "";
        for (int i = 0; i < n; i++)
            answer = answer + str.charAt(i);
        for (int i = n; i < l; i++)
            answer = answer + reverseAlphabet.charAt(str.charAt(i) - 'a');
        return answer;
    }
 
    // Driver function
    public static void main(String args[])
    {
        String str = "pneumonia";
        int n = 4;
        System.out.print(compute(str, n - 1));
    }
}


Python3
# python code to find the reverse
# alphabetical order from a given
# position
 
# Function which take the given string and the
# position from which the reversing shall be
# done and returns the modified string
def compute(st, n):
     
    # Creating a string having reversed
    # alphabetical order
    reverseAlphabet = "zyxwvutsrqponmlkjihgfedcba"
    l = len(st)
     
    # The string up to the point specified in the
    # question, the string remains unchanged and
    # from the point up to the length of the
    # string, we reverse the alphabetical order
    answer = ""
    for i in range(0, n):
        answer = answer + st[i];
             
    for i in range(n, l):
        answer = (answer +
        reverseAlphabet[ord(st[i]) - ord('a')]);
         
    return answer;
 
# Driver function
st = "pneumonia"
n = 4
answer = compute(st, n - 1)
print(answer)
 
# This code is contributed by Sam007.


C#
// C# code to find the reverse alphabetical
// order from a given position
using System;
 
class GFG {
     
    // Function which take the given string
    // and the position from which the
    // reversing shall be done and returns
    // the modified string
    static String compute(string str, int n)
    {
 
        // Creating a string having reversed
        // alphabetical order
        string reverseAlphabet =
               "zyxwvutsrqponmlkjihgfedcba";
        int l = str.Length;
         
        // The string up to the point
        // specified in the question,
        // the string remains unchanged
        // and from the point up to
        // the length of the string, we
        // reverse the alphabetical order
        String answer = "";
         
        for (int i = 0; i < n; i++)
            answer = answer + str[i];
             
        for (int i = n; i < l; i++)
            answer = answer +
               reverseAlphabet[str[i]- 'a'];
        return answer;
    }
 
    // Driver function
    public static void Main()
    {
        string str = "pneumonia";
        int n = 4;
        Console.Write(compute(str, n - 1));
    }
 
}
 
// This code is contributed by Sam007.


php


Javascript


输出:

pnefnlmrz

复杂性 = O(length)