Bonjour, j'ai fais cet algo, mais j'ai un peu de mal à voir si ça correspond, quelqu'un peut me dire si il est correct et si il est possible d'optimisé ?

L'énoncé
Deux mots son anagrammes l'un de l'autre si l'un peut être obtenu par transposition des lettres de l'autre.
Exemple : "MARIE" et "AIMER" sont anagrammes l'un de l'autre ce qui n'est pas le cas pour "BON" et "BONBON".
écrire un algo qui entre deux chaines de caractères de lettres majuscules et sort "OUI" si ces deux chaines sont anagramme l'une de l'autre et "NON" dans le cas contraire
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
ActionAnagramme
		Var CH1:CH2:C = Chaine de caractére
		LongCH1:LongCH2:i:j = Numerique
		Final1 : Final2 = Bouléen
 
Début
		Entrée CH1
		Entrée CH2
		LongCH1 = long(CH1)
		LongCH2 = long(CH2)
		i=j=0
		Final1 = Final2 = FALSE
 
	%Coparaison des longeurs des lettres%
	Si LongCH1 <> LongCH2
		Sortir "NON"
	Sinon	
		Tant que Final1 = false ou i <= LongCH1
			i = i + 1
			Final1 = False
			j = 0
			C = Schain(CH1, i , 1) % On copie une lettre du mot dnas la variable C %
				Tant que j <= LongCh2 ou Final2 = TRUE
					j = 1 + j 
					SI C = Schaine(CH2,j,1) % si la lettre contenu dans la variable c est trouver on arrete la boucle%
						Final2=TRUE
					FinSI
				FINTantQUE
			Si j  > Long(CH2) % si j > au nombre de lettre contenue dans la chaine de caractére alors les mots ne sont pas anagramme%
				Final1 = TRUE
			FinSI
		FINTantQUE
	FinSI
 
	Si Final1 = TRUE
		Sortir "NON"
	Sinon 
		Sortir "OUI"
	FinSI
 
FinAction