WAP qui accepte deux chaînes et renvoie les indices de toutes les occurrences de la deuxième chaîne dans la première chaîne sous forme de liste.

la programmation


Je n’arrive pas à comprendre ce problème… s’il vous plaît faites-moi comprendre et écrivez un programme pour résoudre cette question

Ce que j’ai essayé :

Je n’ai aucune idée de comment aborder cette question.

Solution 1

Commencez par lire attentivement le devoir – il peut être différent du “résumé” que vous nous avez donné.
Vous devez trouver toutes les fois où une chaîne apparaît dans une autre. Donc, si vous recherchez toutes les occurrences de « bonjour » dans « bonjour Mike, bonjour Jane, bonjour Peter », ce serait là trois fois : »hello Mike, hello Jeanne, hello Peter” et les indices sont le nombre de caractères à partir du début de la chaîne auquel la sous-chaîne apparaît :

hello Mike, hello Jane, hello Peter
^           ^           ^
|           |           |
|           |            --- 24
|            --- 12
--- 0

Demandez-vous ensuite « Comment pourrais-je procéder manuellement ? ».
Vous parcourriez la chaîne à la recherche du « h » et vérifieriez s’il était suivi d’un « e », puis d’un « l », et ainsi de suite. Si c’est le cas, vous avez trouvé une sous-chaîne, alors notez la position de départ.
Quoi qu’il en soit, vous passerez ensuite au personnage suivant et vérifierez à nouveau.

Déterminez dans votre tête exactement les règles que vous devez suivre et essayez-les manuellement sur plusieurs chaînes et sous-chaînes différentes. Lorsque vous disposez de règles qui couvrent tous les cas auxquels vous pouvez penser (y compris les chaînes vides, les correspondances entières, l’absence de correspondance, etc.), réfléchissez à la manière de les informatiser.

Si vous rencontrez des difficultés pour démarrer, ceci peut vous aider : Comment écrire du code pour résoudre un problème, guide du débutant[^]

Solution 2

Voir Types intégrés — Documentation Python 3.10.10[^] pour plus d’informations sur l’utilisation et l’accès aux chaînes.

Solution 3

def find_indices(str1, str2) :
indices = []

pour moi dans la plage (len (str1)):
si str1[i:i + len(str2)] == chaîne2 :
indices.append(i)
renvoyer les indices si les indices sinon -1

コメント

タイトルとURLをコピーしました