Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/10/2009, 04:28
m3n0r
 
Fecha de Ingreso: enero-2009
Mensajes: 3
Antigüedad: 15 años, 3 meses
Puntos: 0
Ayuda con PHP + Backtracking

Hola a todos !

Soy nuevo en este foro y novato en php. Os queria preguntar si sabeis donde esta el fallo en mi algoritmo. Creo que el problema no esta en el algoritmo, sino como utilizo el php.

Tuve que pasar de un backtracking hecho en java al backtracking en php, y el problema esta en que, al no tener Arraylists, no se si con los vectores hago un buen tratamiento.

Os explico, el programa hace lo siguiente :

Le pasas una palabra, por ejemplo ces y te hace todas las combinaciones posibles con mayusculas y minusculas. La salida seria :


Aqui esta el algoritmo :

<html>

<head>

<title>Combinacio Paraules</title>

<body>



<?php

if(!isset($_POST['paraula'])) {

?>

<form action="prova.php" method="POST">

<label for="Paraula">Paraula: </label>
<input type="text" name="paraula" size="15">

<input type="submit" value="envia" />

</form>

<?php

}

else {

?>

<form action="prova.php" method="POST">

<input type="submit" value="Tornar">

</form>

<?php
function backtracking($cadena){
if (strlen($cadena) == 1) {
$array1 = array();
$array1[] = strtoupper($cadena);
$array1[] = strtolower($cadena);
//$string1 = implode("",$array1);
//print_r($string1."<br>");
return $string1;
}
else {
$c =(string) substr($cadena,0,1);
$queda =(string) substr($cadena,1,strlen($cadena));
$array2 = array();
$array3 = array();
$array2 = backtracking($queda);
for($j=0;$j<count($array2);$j++) {
$array3[$j] = strtoupper($c).$array2[$j];
$array3[$j] = strtolower($c).$array2[$j];
}
//$string2 = implode("",$array2);
print_r($array2."<br>");
return $array2;
}
}
$paraules = array();
$obteVar = (string) $_POST['paraula'];
$paraules = backtracking($obteVar);
for ($i=0;$i<count($paraules);$i++){
echo ($paraules[$i]."<br>");
}
//print_r($paraules);

//echo "<p>".$paraula."</p>";

}

?>

</body>

</html>

ceS
cES
CeS
CES
ces
CEs
Ces

Si me podeis ayudar os estaría muy agradecido, estoy desesperado, dios Google no me ha ayudado en casi nada :S

Última edición por m3n0r; 23/10/2009 a las 05:22