next up previous contents index
suivant: Supprimer une lettre et monter: Compter un nombre d'occurences précédent: Nombre d'occurences d'une lettre   Table des matières   Index

Nombre d'occurences d'une sous-chaîne

Il faut comparer à chaque étape la sous-chaîne ch avec un morceau de la chaîne S qui a même longueur.
On va utiliser mid(S,j,k) qui renvoie la sous chaîne de S de longueur k qui commence à l'indice j ou mid(S,j) qui renvoie la sous-chaîne fin de S commençant à l'indice j.
Remarque À la place de mid(S,j,k) on peut aussi utiliser S[j..j+k-1] (on met les indices de début et de fin de la sous-chaîne) et à la place de mid(S,j) on peut aussi utiliser S[j..dim(S)-1].
On considère que dans "aaa" on voit une seule sous-chaîne "aa".
Occurch(ch,S):={
  local n,d,j,k;
  d:=dim(S)-1;
  k:=dim(ch);
  n:=0;
  j:=0;
  tantque j<= d-k+1 faire
    si ch==mid(S,j,k)  alors 
      n:=n+1; 
      j:=j+k; 
      sinon
        j:=j+1
    fsi;
  fpour;
  retourne n;
}:;
On tape :
Occurch("e","occurrences")
On obtient : 2
On tape :
Occurch("az","aaazaaazaaaz")
On obtient : 3
On tape :
Occurch("aa","aaazaaazaaaz")
On obtient : 3



Documentation de giac écrite par Renée De Graeve