Petite question : l'interversion ne doit-elle concerner que des lettres consécutives ?
Quelle serait la distance de Hamming de "manger" et "ganmer" ?
1 pour une inversion, 2 pour deux lettres changées ? Voire 3 pour une inversion à une distance de 3 ?
Je pense que si c'est "2 pour deux lettres changées", on peut inclure un test simple dans un algorithme linéaire, mais sinon, on risque de devoir exécuter plusieurs algorithmes, pour gérer chaque cas...
Par exemple :
1 - algo qui calcule le solde au sens 1
2 - algo qui recherche les interversions, et qui enlève 1 pour chacune (et non pas qui rajoute ! Car une interversion a déjà été comptée deux fois dans le premier algo)
3 - ça, sincèrement, ça me parait compliqué à mettre en place ! Il faudrait voir ce qui est utilisé dans les algorithmes de <ital>diff</i> qui sont notamment intégrés aux outils de travail collaboratif (subversion, cvs...) Dans tous les cas, c'est à intégrer au 1er algorithme, sinon la distance explosera et il sera compliqué de la corriger.
4 - idem