Caracteres espejo de una string

Dada una string y un número N, necesitamos reflejar los caracteres desde la posición N-ésima hasta la longitud de la string en orden alfabético. En la operación de espejo, cambiamos ‘a’ por ‘z’, ‘b’ por ‘y’, y así sucesivamente.

Ejemplos: 

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

Input : N = 6
        pneumonia
Output : pnefnlmrz

A continuación se muestran diferentes personajes y sus espejos.

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

Reflejar el orden alfabético significa que a corresponde a z , b corresponde a y . Lo que significa que el primer carácter se convierte en el último y así sucesivamente. Ahora, para lograr esto, mantenemos una string (o una array de caracteres) que contiene los alfabetos ingleses en minúsculas. Ahora, desde el punto de pivote hasta la longitud, podemos buscar el orden alfabético inverso de un carácter utilizando su valor ASCII como índice. Usando la técnica anterior, transformamos la string dada en la requerida.

Implementación:

C++

// C++ code to find the reverse alphabetical
// order from a given position
#include <iostream>
#include <string>
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

<?php
// php 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
function compute($str, $n)
{
    // Creating a string having reversed
    // alphabetical order
    $reverseAlphabet =
            "zyxwvutsrqponmlkjihgfedcba";
    $l = strlen($str);
         
    // 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 = 0; $i < $n; $i++)
        $answer = $answer.$str[$i];
             
    for ($i = $n; $i < $l; $i++){
        $answer = $answer.$reverseAlphabet[
                   ord($str[$i])- ord('a')];
    }
             
    return $answer;
}
 
// Driver function
    $str = "pneumonia";
    $n = 4;
    $answer = compute($str, $n - 1);
    echo $answer;
 
// This code is contributed by Sam007
?>

Javascript

<script>
    // Javascript 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
    function compute(str, n)
    {
   
        // Creating a string having reversed
        // alphabetical order
        let reverseAlphabet =
               "zyxwvutsrqponmlkjihgfedcba";
        let 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
        let answer = "";
           
        for (let i = 0; i < n; i++)
            answer = answer + str[i];
               
        for (let i = n; i < l; i++)
            answer = answer + reverseAlphabet[str[i].charCodeAt()- 'a'.charCodeAt()];
        return answer;
    }
     
    let str = "pneumonia";
    let n = 4;
    document.write(compute(str, n - 1));
        
</script>

Producción: 

pnefnlmrz

Complejidad de tiempo: O(n) , donde n representa el tamaño de la string dada.
Espacio auxiliar: O(1), no se requiere espacio adicional, por lo que es una constante.

Publicación traducida automáticamente

Artículo escrito por parthendo y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *