Codifique la string dada insertando en Matrix en forma de columna e imprimiéndola en forma de fila

Dada una string S y un entero R , la tarea es codificar la string llenando primero cada carácter en forma de columna de arriba a abajo en una array que tiene R filas y luego imprimiendo la array en fila.

Ejemplos:

Entrada : S = «abcdefgh», R = 3
Salida: adgbehcf
Explicación: La array formada es:
adg beh
cf
Entonces
, cuando se imprime en fila, da la string codificada como «adgbehcf»

Entrada: S = “GeeksForGeeks”, R = 5
Salida: GFeeokerskGse
Explicación: El patrón formado es:
G fe
eokers
k
G
s e

 

Enfoque: El enfoque es utilizar una array de strings temporales de tamaño R . Recorra cada carácter de la string S y agréguelo al final de la string en el índice i%R de la array temp . Ahora recorra la fila de la array temporal para obtener la string codificada.

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

C++14

// C++ code to implement above approach
#include <bits/stdc++.h>
using namespace std;
 
// Function to encode the string
string printRowWise(string S, int R)
{
    vector<string> temp(R);
    string ans;
 
    for (int i = 0; i < S.length(); i++)
        temp[i % R].push_back(S[i]);
 
    for (int i = 0; i < R; i++) {
        for (int j = 0; j < temp[i].size();
             j++)
            ans.push_back(temp[i][j]);
    }
    return ans;
}
 
// Driver code
int main()
{
    string S = "GeeksForGeeks";
    int R = 5;
    cout << printRowWise(S, R);
    return 0;
}

Java

// Java code to implement above approach
import java.util.*;
class GFG{
 
  // Function to encode the String
  static String printRowWise(char []S, int R)
  {
    String []temp = new String[R];
    String ans="";
 
    for (int i = 0; i < S.length; i++) {
      if(temp[i % R] == null)
        temp[i % R] = "";
      temp[i % R] += (S[i]);
    }
    for (int i = 0; i < R; i++) {
      for (int j = 0; j < temp[i].length();
           j++)
        ans+=(temp[i].charAt(j));
    }
    return ans;
  }
 
  // Driver code
  public static void main(String[] args)
  {
    String S = "GeeksForGeeks";
    int R = 5;
    System.out.print(printRowWise(S.toCharArray(), R));
  }
}
 
// This code is contributed by 29AjayKumar

Python3

# python3 code to implement above approach
 
# Function to encode the string
def printRowWise(S, R):
    temp = ["" for _ in range(R)]
    ans = ""
 
    for i in range(0, len(S)):
        temp[i % R] += S[i]
 
    for i in range(0, R):
        for j in range(0, len(temp[i])):
            ans += temp[i][j]
 
    return ans
 
# Driver code
if __name__ == "__main__":
 
    S = "GeeksForGeeks"
    R = 5
    print(printRowWise(S, R))
 
# This code is contributed by rakeshsahni

C#

// C# code to implement above approach
using System;
using System.Collections.Generic;
class GFG {
 
  // Function to encode the string
  static string printRowWise(string S, int R)
  {
    string[] temp = new string[R];
    string ans = "";
 
    for (int i = 0; i < S.Length; i++)
      temp[i % R] += S[i];
 
    for (int i = 0; i < R; i++) {
      for (int j = 0; j < temp[i].Length; j++)
        ans += (temp[i][j]);
    }
    return ans;
  }
 
  // Driver code
  public static void Main()
  {
    string S = "GeeksForGeeks";
    int R = 5;
    Console.Write(printRowWise(S, R));
  }
}
 
// This code is contributed by ukasp.

Javascript

<script>
       // JavaScript code for the above approach
 
       // Function to encode the string
       function printRowWise(S, R) {
           let temp = new Array(R);
           for (let i = 0; i < R; i++) {
               temp[i] = []
           }
           let ans = [];
 
           for (let i = 0; i < S.length; i++)
               temp[i % R].push(S[i]);
 
           for (let i = 0; i < R; i++) {
               for (let j = 0; j < temp[i].length;
                   j++)
                   ans.push(temp[i][j]);
           }
           return ans.join('');
       }
 
       // Driver code
       let S = "GeeksForGeeks";
       let R = 5;
       document.write(printRowWise(S, R));
 
 // This code is contributed by Potta Lokesh
   </script>
Producción

GFeeokerskGse

Complejidad de tiempo: O(N) donde N es la longitud de la string
Espacio auxiliar: O(N)

Publicación traducida automáticamente

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