2017-06-09 1 views
0

J'ai une chaîne de huit caractères, par ex. abcdefgh. J'ai besoin de générer toutes les combinaisons possibles de 10 caractères de cette chaîne.Toutes les combinaisons possibles de caractères dans une chaîne

Par exemple, toutes les combinaisons 2 caractères de cette chaîne serait abbccdefghacadaeafah, etc.

je pensais de faire quelque chose comme this, mais je ne pouvais pas comprendre comment le faire fonctionner.

Que dois-je faire? Y a-t-il un algorithme simple qui me manque?

+0

Combinaisons de 10 sur 8? Êtes-vous sûr? Pas de répétitions ("aaaaaaaaba")? – pmg

+0

Utiliser un entier de longueur appropriée pour compter de 0 à 8^10; pour chaque entier, convertissez en octal, et utilisez chaque chiffre pour indiquer lequel des huit caractères placer dans cette position. – twalberg

Répondre

0

Vous pouvez utiliser 2 pointeurs, un sur la lettre t le début de votre chaîne, qui est incrémenté un chaque fois que vous êtes sur '/ 0' et le second qui est simplement incrémenté à chaque tour de votre boucle avec une condition Pour ne pas réécrire une ancienne combinaison.

aa ab ac ... bb bc ... 

Edit:

Aucune condition de besoin, que la remise à zéro de votre deuxième pointeur doivent être 1 sur le premier pointeur