Dadas dos strings, copie una string a otra usando recursividad. Básicamente necesitamos escribir nuestra propia versión recursiva de strcpy en C/C++
Ejemplos:
Input : s1 = "hello" s2 = "geeksforgeeks" Output : s2 = "hello" Input : s1 = "geeksforgeeks" s2 = "" Output : s2 = "geeksforgeeks"
Iterativo:
copie cada carácter de s1 a s2 comenzando desde index = 0 y en cada llamada aumente el índice en 1 hasta que s1 no llegue al final;
C++
// Iterative CPP Program to copy one String // to another. #include <bits/stdc++.h> using namespace std; // Function to copy one string to other // assuming that other string has enough // space. void myCopy(char s1[], char s2[]) { int i = 0; for (i=0; s1[i] != '\0'; i++) s2[i] = s1[i]; s2[i] = '\0'; } // Driver function int main() { char s1[100] = "GEEKSFORGEEKS"; char s2[100] = ""; myCopy(s1, s2); cout << s2; return 0; }
Java
// Iterative Java Program to copy one String // to another. class GFG { // Function to copy one string to other // assuming that other string has enough // space. static void myCopy(char s1[], char s2[]) { int i = 0; for (i = 0; i < s1.length; i++) s2[i] = s1[i]; } // Driver code public static void main(String[] args) { char s1[] = "GEEKSFORGEEKS".toCharArray(); char s2[] = new char[s1.length]; myCopy(s1, s2); System.out.println(String.valueOf(s2)); } } // This code contributed by Rajput-Ji
Python3
# recursive Python Program to copy one String # to another. # Function to copy one string to other def copy_str(x,y): if len(y)==0: return x else: c = copy_str(x,(y)[1:-1]) return c x = input() y = input() print(copy_str(x,y)) # This code contributed by deeksha20049@iiid.ac.in #deeksha20049
C#
// Iterative C# Program to copy one String // to another. using System; class GFG { // Function to copy one string to other // assuming that other string has enough // space. static void myCopy(char []s1, char []s2) { int i = 0; for (i = 0; i < s1.Length; i++) s2[i] = s1[i]; } // Driver code public static void Main(String[] args) { char []s1 = "GEEKSFORGEEKS".ToCharArray(); char []s2 = new char[s1.Length]; myCopy(s1, s2); Console.WriteLine(String.Join("", s2)); } } // This code is contributed by 29AjayKumar
Javascript
<script> // Iterative Javascript Program to copy one String // to another. // Function to copy one string to other // assuming that other string has enough // space. function myCopy(s1, s2) { let i = 0; for (i = 0; i < s1.length; i++) s2[i] = s1[i]; } // Driver code // Driver Code let s1 = "GEEKSFORGEEKS"; let s2 = []; let index = 0; myCopy(s1, s2, index); document.write(s2.join("")); // This code contributed by shivanisinghss2110 </script>
GEEKSFORGEEKS
Complejidad del tiempo: O(m)
Aquí m es la longitud de la string s1.
Espacio Auxiliar: O(1)
Como espacio adicional constante se utiliza.
Recursivo:
copia todos los caracteres de s1 a s2 a partir de índice = 0 y en cada llamada aumenta el índice en 1 hasta que s1 no llegue al final;
C++
// CPP Program to copy one String to // another using Recursion #include <bits/stdc++.h> using namespace std; // Function to copy one string in to other // using recursion void myCopy(char s1[], char s2[], int index = 0) { // copying each character from s1 to s2 s2[index] = s1[index]; // if string reach to end then stop if (s1[index] == '\0') return; // increase character index by one myCopy(s1, s2, index + 1); } // Driver function int main() { char s1[100] = "GEEKSFORGEEKS"; char s2[100] = ""; myCopy(s1, s2); cout << s2; return 0; }
Java
// Java Program to copy one String to // another using Recursion class GFG { // Function to copy one string in to other // using recursion static void myCopy(char s1[], char s2[], int index) { // copying each character from s1 to s2 s2[index] = s1[index]; // if string reach to end then stop if (index == s1.length - 1) { return; } // increase character index by one myCopy(s1, s2, index + 1); } // Driver Code public static void main(String[] args) { char s1[] = "GEEKSFORGEEKS".toCharArray(); char s2[] = new char[s1.length]; int index = 0; myCopy(s1, s2, index); System.out.println(String.valueOf(s2)); } } // This code is contributed by PrinciRaj1992
Python3
# recursive Python Program to copy one String # to another. # Function to copy one string to other def copy_str(x, y): if len(y) == 0: return x else: c = copy_str(x, (y)[1:-1]) return c x = input("hello") y = input("no") print(copy_str(x, y)) # This code contributed by deeksha20049@iiid.ac.in
C#
// C# Program to copy one String to // another using Recursion using System; class GFG { // Function to copy one string in to other // using recursion static void myCopy(char []s1, char []s2, int index) { // copying each character from s1 to s2 s2[index] = s1[index]; // if string reach to end then stop if (index == s1.Length - 1) { return; } // increase character index by one myCopy(s1, s2, index + 1); } // Driver Code public static void Main(String[] args) { char []s1 = "GEEKSFORGEEKS".ToCharArray(); char []s2 = new char[s1.Length]; int index = 0; myCopy(s1, s2, index); Console.WriteLine(String.Join("", s2)); } } // This code is contributed by Princi Singh
Javascript
<script> // Javascript program to copy one String to // another using Recursion // Function to copy one string in to other // using recursion function myCopy(s1, s2, index) { // Copying each character from s1 to s2 s2[index] = s1[index]; // If string reach to end then stop if (index == s1.length - 1) { return; } // Increase character index by one myCopy(s1, s2, index + 1); } // Driver Code var s1 = "GEEKSFORGEEKS"; var s2 = []; var index = 0; myCopy(s1, s2, index); document.write(s2.join("")); // This code is contributed by gauravrajput1 </script>
GEEKSFORGEEKS
Complejidad del tiempo: O(m)
Aquí m es la longitud de la string s1.
Espacio Auxiliar: O(1)
Como es una función recursiva de cola, se usa un espacio adicional constante.
Publicación traducida automáticamente
Artículo escrito por Shahnawaz_Ali y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA