Ver Mensaje Individual
  #7 (permalink)  
Antiguo 10/06/2003, 14:01
josemi
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

No dudo que funcione, pero quizas hay otro algoritmo mas facil simplemente mirando el problema desde otro enfoque. Sabemos el tamaño de la cadena; sabemos cual es el ultimo caracter; recorremos la cadena desde el final hasta el comienzo hasta que encontremos un caracter que no sea igual al ultimo caracter, contando los que son iguales; sabiendo cuantos son iguales, hacemos la sustitucion. Y asi de cabeza me sale este codigo:
Código PHP:
$texto="holaaaaaaaaaaaaaaaaaaaaa";
$longitud_cadena=strlen($texto);
$ultimo_caracter=$texto{$longitud_cadena 1}; // -1 porque el primer caracter es el indice 0
$caracteres_repetidos=0;
for (
$i=$longitud_cadena 1;$i>=0;$i--) {
  if (
$texto{$i}!=$ultimo_caracter) break; // salimos del bucle
  
$caracteres_repetidos++;  // sumamos 1 al numero de caracteres repetidos
}  // fin for
$texto_final=substr_replace($texto,"b",$longitud_cadena-$caracteres_repetidos,$caracteres_repetidos);
echo 
$texto_final
He hecho un par de pruebas y parece que funciona.

Simplemente otra opcion de algoritmo.

Saludos.

PD: Esto es lo grande de la programacion. Pregunta a 10 programadores por un programa, y obtendras 21 codigos totalmente validos y que funcionan.
__________________
Josemi

Aprendiz de mucho, maestro de poco.