-4
votes

Trouver des mots dans un tableau

Comment vérifier si l'un des mots d'une chaîne existe dans un tableau?

Par exemple: P>

let arr = ["This", "is", "Array", "of", "String"]
let str = "The word String is exists"


1 commentaires

Qu'est-ce que tu as essayé jusque-là?


5 Réponses :


0
votes
let arr = ["This", "is", "Array", "of", "String"]
let str = "The word String is exists"
let set1 = Set(str.components(separatedBy: .whitespaces).filter { !$0.isEmpty })
let set2 = Set(arr)
let result = set1.intersection(set2)
print(result)

2 commentaires

N'oubliez pas que cela ne fonctionnera pas si la chaîne contient une ponctuation autre que des espaces.


Vous soutenez maintenant d'autres espaces en dehors d'un espace simple, mais cela ne traite aucune autre ponctuation.



0
votes

Vous pouvez essayer xxx


4 commentaires

Je voudrais simplement promouvoir Ar à un définir si cela devient assez grand, pour éviter la complexité du temps quadratique.


N'oubliez pas que cela ne fonctionnera pas si la chaîne contient une ponctuation autre que des espaces.


@Alexander Oui mais depuis que c'est déjà suggéré de répéter


@RMADDY Nous pouvons travailler sur les valeurs actuelles, OP devrait faire attention dans de tels cas.



0
votes

essayer suivi:

var resArray = [String]()
let wordArr = str.components(separatedBy: " ")
for s in wordArr {
     if arr.contains(s) {
       resArray.append(s)
    }
}


2 commentaires

1) Vous pouvez simplifier ce code dans juste un simple fichier instruction , 2) Vous devez utiliser un définir pour restarray (qu'est-ce que "RES TABRAY "Même signifie)? 3) Ne récompensez pas les questions qui ne montrent aucun effort. Pour tout ce que vous savez, vous venez de faire les devoirs de ce type sans l'avoir appris du tout


N'oubliez pas que cela ne fonctionnera pas si la chaîne contient une ponctuation autre que des espaces.



2
votes

Voici une solution moins naïve qui fonctionnera pour les chaînes contenant une ponctuation.

Ceci divise d'abord la chaîne en mots en utilisant des règles localisées. Il trouve ensuite l'intersection des deux matrices de mots. xxx

sortie:

["string", "est"]
["Il", "aujourd'hui"]

A partir de cette écriture, aucune des autres solutions ne fonctionnera pour le deuxième exemple.


0 commentaires

0
votes

Vous pouvez obtenir le résultat directement avec une intersection définie: xxx


0 commentaires