Bonjour,
J'ai un petit problème avec un script que je dois réaliser. Je souhaiterais compter le nombre de palindromes possibles dans une chaine, mais je ne dois compter que les palindromes maximums.
C'est à dire que la chaine "ababab" contient deux palindromes maximums : "ababa" et "babab", mais "aba" et "bab" n'en font pas partie.
J'ai réalisé ce script, mais il ne fonctionne pas correctement (je me retrouve parfois avec trop de résultats, et parfois avec pas assez).
Si quelqu'un à une idée... merci !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 <?php function palindromes(){ $palindromes = 0; $chaine_finale = ""; $som = 0; $args = func_get_args(); $nbr = count($args); for($i=0;$i<$nbr;++$i){ $args[$i] = strtolower(trim($args[$i])); $chaine_finale = $chaine_finale . $args[$i]; } $caracteres = strlen($chaine_finale); $half = ceil($caracteres / 2); for($i=1;$i<$caracteres-1;$i++){ if($i<$half){ $limit = $i; } elseif($i>=$half){ $limit = $caracteres - $i - 1; } $j = 0; $k = 0; while($j<$limit AND $k==0){ $j++; $mot = substr($chaine_finale,$i-$j,$j+$j+1); echo "$i - $j (Test de $mot)<br/>"; } echo "<br/><br/>"; } echo "<b>Nombre de palindromes :</b> $palindromes"; } palindromes("ababab"); ?>
Partager