3 votes

Concaténation de deux chaînes de caractères sans intersection

J'ai besoin de concaténer deux chaînes de caractères dans une autre sans leur intersection (en termes de derniers/premiers mots).

En exemple :

"Some little d" + "les petits chiens sont si jolis" = "Certains petits chiens sont si jolis"

"Je t'aime" + "amour" = "Je t'aime".

Quel est le moyen le plus efficace de faire cela en Java ?

0voto

fgb Points 4868

Créer un arbre des suffixes de la première chaîne, puis parcourt l'arbre à partir de la racine en prenant les caractères du début de la deuxième chaîne et en gardant la trace du plus long suffixe trouvé.

Il doit s'agir du plus long suffixe de la première chaîne qui est un préfixe de la deuxième chaîne. Supprimez le suffixe, puis ajoutez la deuxième chaîne.

Tout cela devrait être possible en temps linéaire au lieu du temps quadratique nécessaire pour parcourir et comparer tous les suffixes.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X