Reemplazar cada carácter de una string por un carácter diferente

Dada una string str de alfabetos en minúsculas solamente. La tarea es reemplazar cada personaje por algún personaje nuevo. El nuevo carácter pertenece a  $a-z$    (solo en minúsculas) El reemplazo de str[i] está determinado por:
 

str[i] = Carácter obtenido después de atravesar ascii(str[i]) no. de caracteres en ‘a-z’ repetidamente después de str[i].

Ejemplos: 
 

Entrada: str = «geeksforgeeks» 
Salida: fbbnddvbfbbnd
En el caso anterior, str = «geeksforgeeks», 
el valor ASCII de ‘g’ es 103, por lo tanto, ‘g’ se reemplazó moviéndose 103 veces desde ‘g’ en el rango deseado, es decir, Arizona. 
Por lo tanto, el carácter ‘g’ se reemplaza por ‘f’. 
De manera similar, la string completa «geeksforgeeks» se convierte en «fbbnddvbfbbnd».
Entrada: str = «ciencia» 
Salida: dxjbtxb

Acercarse: 
 

  1. Atraviesa la cuerda.
  2. Para cada i, encuentre el carácter que debe reemplazarse con str[i].
  3. Reemplace str[i] con ese carácter.

A continuación se muestra la implementación del enfoque anterior: 
 

C++

// C++ program for Replace every character of a
// string by a different character
#include <bits/stdc++.h>
using namespace std;
 
// Function to manipulate the string
void manipulateString(string &str)
{
 
    // looping through each character of string
    for (int i = 0; i < str.length(); i++) {
 
        // storing integer ASCII value of
        // the character in 'asc'
        int asc = str[i];
 
        // 'rem' contains coded value which
        // needs to be rounded to 26
        int rem = asc - (26 - (str[i] - 'a'));
 
        // converting 'rem' character in range
        // 0-25 and storing in 'm'
        int m = rem % 26;
 
        // printing character by adding ascii value of 'a'
        // so that it becomes in the desired range i.e. a-z
        str[i] = (char)(m + 'a');
    }
}
 
// Driver code
int main()
{
 
    // Declaring str as 'geeksforgeeks'
    string str = "geeksforgeeks";
 
    manipulateString(str);
 
    cout << str;
 
    return 0;
}

Java

// Java program for Replace every character of a
// string by a different character
public class GFG {
 
    //Function to manipulate the string
    static void manipulateString(String str)
    {
 
        char[] str1 = str.toCharArray();
         
     // looping through each character of string
     for (int i = 0; i < str.length(); i++) {
 
         // storing integer ASCII value of
         // the character in 'asc'
          
         int asc = str1[i];
        
         // 'rem' contains coded value which
         // needs to be rounded to 26
         int rem = asc - (26 - (str1[i] - 97));
 
         // converting 'rem' character in range
         // 0-25 and storing in 'm'
         int m = rem % 26;
         
         // printing character by adding ascii value of 'a'
         // so that it becomes in the desired range i.e. a-z
         str1[i] = (char)(m + 'a');
             
     }
     
     String str2 = String.valueOf(str1);
     System.out.println(str2);
      
    }
 
    //Driver code
    public static void main(String[] args) {
         
        // Declaring str as 'geeksforgeeks'
         String str = "geeksforgeeks";
 
         manipulateString(str);
          
         
    }
}

Python 3

# Python 3 program for Replace every character of a
# string by a different character
 
# Function to manipulate the string
def manipulateString(str) :
 
    # looping through each character of string
    for i in range(len(str)) :
         
        # storing integer ASCII value of
        # the character in 'asc'
        asc = ord(str[i])
 
        # 'rem' contains coded value which
        # needs to be rounded to 26
        rem = asc - (26 - (ord(str[i]) - ord('a')))
 
        # converting 'rem' character in range
        # 0-25 and storing in 'm'
        m  = rem % 26
 
        #printing character by adding ascii value of 'a'
        # so that it becomes in the desired range i
        str[i] = chr(m + ord('a'))
 
    # join method join all individual
    # characters to form a string
    print(''.join(str))
 
# Driver code    
if __name__ == "__main__" :
 
    str = "geeksforgeeks"
 
    # convert string into list of characters
    str = list(str)
 
    # Function calling
    manipulateString(str)
 
  
# This code is contributed by ANKITRAI1

C#

     
// C# program for Replace every character of a
// string by a different character
using System;
public class GFG {
  
    //Function to manipulate the string
    static void manipulateString(String str)
    {
  
        char[] str1 = str.ToCharArray();
          
     // looping through each character of string
     for (int i = 0; i < str.Length; i++) {
  
         // storing integer ASCII value of
         // the character in 'asc'
           
         int asc = str1[i];
         
         // 'rem' contains coded value which
         // needs to be rounded to 26
         int rem = asc - (26 - (str1[i] - 97));
  
         // converting 'rem' character in range
         // 0-25 and storing in 'm'
         int m = rem % 26;
          
         // printing character by adding ascii value of 'a'
         // so that it becomes in the desired range i.e. a-z
         str1[i] = (char)(m + 'a');
              
     }
      
     String str2 = String.Join("",str1);
     Console.WriteLine(str2);
       
    }
  
    //Driver code
    public static void Main() {
          
        // Declaring str as 'geeksforgeeks'
         String str = "geeksforgeeks";
         manipulateString(str);
           
          
    }
}
// This code is contributed by PrinciRaj1992

Javascript

<script>
 
// Javascript program for Replace every character of a
// string by a different character
 
 
// Function to manipulate the string
function manipulateString(str)
{
 
    // looping through each character of string
    for (var i = 0; i < str.length; i++) {
 
        // storing integer ASCII value of
        // the character in 'asc'
        var asc = str[i];
 
        // 'rem' contains coded value which
        // needs to be rounded to 26
        var rem = asc.charCodeAt(0) - (26 - (str[i].charCodeAt(0) - 'a'.charCodeAt(0)));
 
        // converting 'rem' character in range
        // 0-25 and storing in 'm'
        var m = (rem % 26);
 
        // printing character by adding ascii value of 'a'
        // so that it becomes in the desired range i.e. a-z
        str[i] = String.fromCharCode(m + 'a'.charCodeAt(0));
    }
    return str;
}
 
// Driver code
// Declaring str as 'geeksforgeeks'
var str = "geeksforgeeks";
document.write(manipulateString(str.split('')).join(''));
 
</script>
Producción: 

fbbnddvbfbbnd

 

Complejidad de tiempo: O (N), ya que estamos usando un bucle para atravesar N veces, por lo que nos costará O (N) tiempo.
Espacio auxiliar: O(1), ya que no estamos utilizando ningún espacio adicional.

Publicación traducida automáticamente

Artículo escrito por ash264 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 *