Una pregunta que puede aparecer en una entrevista laboral para el puesto de desarrollador, y algunas respuestas (aunque no las únicas) posibles.

Un detalle a tener en cuenta es que, en Java, concatenar cadenas en un bucle con += no es eficiente para textos largos, porque cada concatenación crea un nuevo objeto String (las cadenas son inmutables). Para código de producción se suele usar StringBuilder. Pero para un ejercicio como este, la concatenación con += suele ser suficiente.

▶️ Video: strings en Python

Problema de entrevista laboral

 

Click aquí para una versión accesible de la infografía (apta para lectores electrónicos)
 

PROBLEMA DE PROGRAMACIÓN

Escribir una función para invertir un string. Puede usarse cualquier lenguaje, pero debe evitarse el uso de funciones predefinidas para invertir strings.

ALGUNAS POSIBLES SOLUCIONES:

Solución en C++:

std::string invertir(std::string s) {
    std::string invertido = "";
    for (int i = s.length()-1; i >= 0; i--) {
        invertido += s[i];
    }
    return invertido;
}

Solución 1 en Python:

def invertir(s):
    invertido = ""
    for c in s:
        invertido = c + invertido
    return invertido

Solución 2 en Python:

def invertir(s):
  invertido = ""
  for i in range(len(s) -1, -1, -1):
     invertido += s[i]
  return invertido

Solución en Java:

public static String invertir(String s) {
  String invertido = "";
  for (int i = s.length()-1; i>=0; i--) {
     invertido += s.charAt(i);
  }
  return invertido;
}