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 (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:
- Atraviesa la cuerda.
- Para cada i, encuentre el carácter que debe reemplazarse con str[i].
- 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>
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.