Maison  >  Article  >  développement back-end  >  Programme Python pour trouver tous les sous-ensembles d'une chaîne

Programme Python pour trouver tous les sous-ensembles d'une chaîne

WBOY
WBOYavant
2023-09-23 21:33:041184parcourir

Programme Python pour trouver tous les sous-ensembles dune chaîne

En Python, un sous-ensemble d'une chaîne est une séquence de caractères qui fait partie de la chaîne d'origine. Nous pouvons trouver tous les sous-ensembles d'une chaîne en utilisant le module itertools en Python. Dans cet article, nous verrons comment générer tous les sous-ensembles d'une chaîne en réalisant toutes les combinaisons possibles des caractères de la chaîne.

Grammaire

itertools.combination(string,r)

La fonction combinaison() du module itertools accepte une chaîne et r, où r représente la taille des différentes combinaisons de chaînes possibles. Il renvoie toutes les combinaisons de caractères possibles d'une chaîne.

Algorithme

  • Initialisez une liste vide appelée combinaison

  • Utilisez une boucle for et la fonction itertools.combination pour générer toutes les combinaisons de caractères possibles dans la chaîne.

  • Filtrer le contenu qui n'est pas un sous-ensemble de la chaîne d'origine

  • Sous-ensemble de retour

La traduction chinoise de

Exemple

est :

Exemple

Dans l'exemple ci-dessous, nous importons d'abord le module itertools pour générer toutes les combinaisons de caractères possibles dans une chaîne. La fonction find_subsets() accepte une chaîne en entrée et renvoie tous les sous-ensembles possibles de la chaîne. La méthode find_subset() crée d'abord une liste vide pour stocker tous les sous-ensembles. Ensuite, à l'aide de la boucle for et de la fonction itertools.combination(), il génère tous les sous-ensembles possibles de la chaîne et les stocke dans une liste de combinaisons. Une fois que toutes les combinaisons ont été générées et stockées, nous devons filtrer les chaînes qui ne sont pas un sous-ensemble de la chaîne d'origine et stocker ces sous-ensembles dans une liste appelée sous-ensemble. Ce sous-ensemble est ensuite renvoyé par la fonction comme tous les sous-ensembles possibles de la chaîne.

import itertools

def find_subsets(string):
    # Get all possible combinations of characters in the string
    combinations = []
    for i in range(len(string) + 1):
        combinations += itertools.combinations(string, i)
    # Filter out the ones that are not subsets of the original string
    subsets = []
    for c in combinations:
        subset = ''.join(c)
        if subset != '':
            subsets.append(subset)
    return subsets

# Test the function
string = 'abc'
subsets = find_subsets(string)
print(subsets)

Sortie

['a', 'b', 'c', 'ab', 'ac', 'bc', 'abc']

Conclusion

Dans cet article, nous avons expliqué comment générer tous les sous-ensembles possibles d'une chaîne à l'aide du module itertools en Python. Une fois que nous avons généré toutes les combinaisons possibles de caractères dans une chaîne, nous devons filtrer les chaînes qui ne sont pas un sous-ensemble de la chaîne d'origine. En conséquence, nous obtenons tous les sous-ensembles possibles de la chaîne.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer