Existe-t-il une méthode rapide qui obtient le mot le plus grand parmi un ensemble de mots?Obtenir le mot le plus long d'une liste de mots
NSMutableArray wordlist
Existe-t-il une méthode rapide qui obtient le mot le plus grand parmi un ensemble de mots?Obtenir le mot le plus long d'une liste de mots
NSMutableArray wordlist
Quelque chose comme ce qui suit devrait faire l'affaire:
NSString *longest = nil;
for(NSString *str in wordlist) {
if (longest == nil || [str length] > [longest length]) {
longest = str;
}
}
Je ne suis pas au courant d'une méthode plus simple.
Si vous utilisez une chaîne vide comme valeur initiale de plus longue, vous pouvez supprimer le plus long test == nil. – taskinoor
Bon point. Cela dit, en y pensant, même si c'est le plus long == nul, [la plus grande longueur] évaluera à 0, et ça marchera toujours. –
Vous pouvez utiliser quelque chose comme this example pour trier un tableau (mais au lieu de la sorte de « qualité » dans l'exemple d'utiliser une sorte de longueur sur vos cordes) et la plus longue chaîne sera soit en haut ou à la fin (en fonction de votre tri).
Tri pour trouver l'élément de longueur maximale? Vous pouvez le faire en O (n). Alors pourquoi trier? – taskinoor
Certes, la suggestion de Tom est beaucoup mieux. Mais au lieu de commenter toutes les réponses, essayez d'en ajouter une pour vous :-) – Jake
Je me demandais si le questionneur était déjà au courant de la solution de la boucle de cheminement et en cherchait une meilleure. Vérifiez qu'il y a un commentaire sur la question. Et j'écrirais la même réponse que de Tom sans le chèque nul. Mais pourquoi devrais-je spammer avec la réponse que quelqu'un a déjà posté? Juste un commentaire dans la réponse de Tom est suffisant. N'est-ce pas? – taskinoor
Je ne connais pas d'objectif C moi-même, mais ma solution serait de garder un entier 'longest' et une chaîne 'longestWord' et de l'initialiser à 0 et "". Puis bouclez sur la liste et vérifiez si le mot actuel est plus long que la valeur «le plus long». Si c'est le cas, enregistrez la nouvelle longueur et le mot actuel. A la fin de la boucle, vous avez le mot le plus long stocké dans la variable 'longestWord'.
Hope this helps
Etes-vous déjà au courant que vous pouvez le faire en une seule boucle? – taskinoor