Dada una string str de tamaño N y un entero K , la tarea es generar una string cuyas substrings de tamaño K se puedan concatenar para formar la string dada.
Ejemplos:
Entrada: str = “abbaaa” K = 2
Salida: abaa
Explicación:
Todas las substrings de tamaño 2 de la string principal “abaa” son “ab”, “ba” y “aa”. Después de concatenar todas estas substrings, se puede obtener la string dada «abbaaa».
Entrada: str = “abcbcscsesesesd” K = 3
Salida: abcsesd
Explicación:
todas las substrings de tamaño 3 de la string principal “abcsesd” son “abc”, “bcs”, “cse”, “ses” y “esd”. Después de concatenar todas estas substrings, se puede obtener la string dada «abcbcscsesesesd».
Enfoque:
siga los pasos a continuación para resolver el problema:
- Podemos observar claramente que al concatenar substrings de longitud K , excepto el primer carácter, los caracteres K-1 restantes de cualquier substring también están presentes en la siguiente substring.
- Por lo tanto, recorra la string y agregue el primer carácter de cada substring a ans y luego ignore los siguientes caracteres K-1 .
- Repita este proceso para todas las substrings excepto la última substring.
- Agregue todos los caracteres de la última substring a ans .
- Devuelve ans como la string decodificada requerida.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program to generate a // string whose substrings of // length K concatenates to // form given strings #include <bits/stdc++.h> using namespace std; // Function to return the required // required string void decode_String(string str, int K) { string ans = ""; // Iterate the given string for (int i = 0; i < str.size(); i += K) // Append the first // character of every // substring of length K ans += str[i]; // Consider all characters // from the last substring for(int i = str.size() - (K - 1); i < str.size(); i++) ans += str[i]; cout << ans << endl; } // Driver Program int main() { int K = 3; string str = "abcbcscsesesesd"; decode_String(str, K); }
Java
// Java program to generate a // string whose substrings of // length K concatenates to // form given strings class GFG{ // Function to return the required // required string public static void decode_String(String str, int K) { String ans = ""; // Iterate the given string for(int i = 0; i < str.length(); i += K) // Append the first // character of every // substring of length K ans += str.charAt(i); // Consider all characters // from the last substring for(int i = str.length() - (K - 1); i < str.length(); i++) ans += str.charAt(i); System.out.println(ans); } // Driver code public static void main(String[] args) { int K = 3; String str = "abcbcscsesesesd"; decode_String(str, K); } } // This code is contributed by divyeshrabadiya07
Python3
# Python3 program to generate a # string whose substrings of # length K concatenates to # form given strings # Function to return the required # required string def decode_String(st, K): ans = "" # Iterate the given string for i in range(0, len(st), K): # Append the first # character of every # substring of length K ans += st[i] # Consider all characters # from the last substring for i in range(len(st) - (K - 1), len(st)): ans += st[i] print(ans) # Driver code if __name__ == "__main__": K = 3 st = "abcbcscsesesesd" decode_String(st, K) # This code is contributed by chitranayal
C#
// C# program to generate a string // whose substrings of length K // concatenates to form given strings using System; class GFG{ // Function to return the required // required string public static void decode_String(String str, int K) { String ans = ""; // Iterate the given string for(int i = 0; i < str.Length; i += K) // Append the first // character of every // substring of length K ans += str[i]; // Consider all characters // from the last substring for(int i = str.Length - (K - 1); i < str.Length; i++) ans += str[i]; Console.WriteLine(ans); } // Driver code public static void Main(String[] args) { int K = 3; String str = "abcbcscsesesesd"; decode_String(str, K); } } // This code is contributed by Rohit_ranjan
Javascript
<script> // JavaScript program to implement // the above approach // Function to return the required // required string function decode_String(str, K) { let ans = ""; // Iterate the given string for(let i = 0; i < str.length; i += K) // Append the first // character of every // substring of length K ans += str[i]; // Consider all characters // from the last substring for(let i = str.length - (K - 1); i < str.length; i++) ans += str[i]; document.write(ans); } // Driver code let K = 3; let str = "abcbcscsesesesd"; decode_String(str, K); // This code is contributed by sanjoy_62. </script>
abcsesd
Complejidad temporal: O(N)
Espacio auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por grand_master y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA