Pour cette question, une "paire" dans une chaîne est définie comme une situation où deux instances d'un caractère sont séparées par un autre caractère. Donc, dans "AXA", les A font une paire. Les paires peuvent se chevaucher, donc "Axaxa" contient trois paires; deux pour a et un pour x. p>
Exemples supplémentaires: P>
On m'a demandé comment calculer le nombre de paires dans une chaîne donnée dans une interview hier, et je ne sais pas comment le faire. P>
Compairs ("Axax") → 2
Compairs ("Axbx") → 1 fort> p>
3 Réponses :
une solution O (n) serait d'itérer la chaîne (de 0 à longueur-2 code>) et (en utilisant charat (..) code>) pour vérifier si le Le caractère actuel est égal au courant + 2 code>. Si tel est le cas, incrémenter un pairscount code> variable
Puis-je avoir l'exemple logique s'il vous plaît.Im coincé avec cela depuis matin.
@ Bozho, une clarification, pourquoi avez-vous mentionné str.length () - 3 code>
parce que c'est le dernier caractère qu'une paire peut commencer i> avec
Eh bien, voyez que vous vérifiez i + 2 code>. Cela signifie que la dernière valeur de i code> devrait être 2 inférieure au maximum.
Le précédent Awser ne croyait pas le fait que le Caracter au milieu (le séparateur) doit être différent.
Pour cette question, une "paire" dans une chaîne est définie comme une situation où deux instances d'un caractère
sont séparées par un autre caractère fort>. Donc, dans "AXA", les A font une paire. Les paires peuvent se chevaucher, donc "Axaxa" contient trois paires; deux pour a et un pour x. p> BlockQuote> Doit que ces personnages soient différents? Ici ce que je pense que si cela doit être différent ... p>
xxx pré> p>
bonne prise. J'ai supposé que AAA est également considéré comme une paire. Mais ce pourrait être l'inverse.
avec récursion:
Dommage que j'ai du travail à faire: - /. C'est une question assez intéressante.
@Helper Method.Je ne vous a pas eu. Vous avez souligné que j'étais incapable de le résoudre.