Genere una string cuyas substrings de tamaño K se puedan concatenar para formar la string dada

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: 
 

  1. 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.
  2. 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 .
  3. Repita este proceso para todas las substrings excepto la última substring.
  4. Agregue todos los caracteres de la última substring a ans .
  5. 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>
Producción: 

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

Deja una respuesta

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