algorithme de LeetCode basé sur 99 questions: la première trouver une chaîne unique de caractères

La technologie pour améliorer est un processus graduel, donc je parle des questions leetcode algorithme de niveau le plus simple a commencé à écrire, puis à la difficulté intermédiaire, a finalement terminé toute la difficulté difficile.

Actuellement, je choisi le langage C, Python et Java comme langage de mise en uvre, parce que ces trois langues est tout à fait typique. En raison de l'espace et de l'énergie limitée pour réaliser d'autres langues amis qui sont intéressés, s'il vous plaît essayer vous-même.

principale difficulté à parler en même temps, je vais ajouter d'autres choses, je pourrais parler à la pile de protocole du système d'exploitation de grandes quantités de données distribués à partir du cadre, et de parler de gros volumes de données à l'intelligence artificielle, ... ....

Si vous avez des questions ou des commentaires après l'article lettre privée à moi .

Je continuerai à le partager, votre attention s'il vous plaît.

LeetCode 387. La première chaîne un caractère unique (premier caractère unique dans une chaîne)

Description du problème:

D'une chaîne, trouver ses premiers caractères de non-répétition, et retourne son index. Dans le cas contraire, elle renvoie -1.

Note: Vous pouvez supposer que la chaîne contient des lettres minuscules seulement.

exemple:

langage C:

Le premier réflexe est de traverser la chaîne entière, compter le nombre de fois que chaque lettre apparaît, puis itérer pour trouver la première fois la chaîne de lettres apparaissent SUBSCRIPT. La complexité de cet algorithme est O (n), pendant deux cycles à exécuter.

Mais je veux résoudre ce problème en un seul cycle. J'ai découvert qu'en fait, nous pouvons utiliser une méthode précédemment utilisée, nous pouvons trouver des deux côtés en même temps une série de 26 lettres chaque lettre dans la position de la chaîne et de gauche à droite, donc il y a trois cas:

  • Recherche échoue, la lettre n'a pas expliqué la chaîne;
  • Si les deux endroits pour trouver les lettres sont différentes, ce qui indique que les lettres apparaissent plus d'une fois dans la chaîne;
  • Si vous trouvez l'emplacement des deux lettres sont les mêmes, il montre la lettre apparue une fois dans la chaîne, nous recherchons, alors il suffit de regarder ce n'est pas le plus petit indice peut;
  • Code est la suivante:

    Nous utilisons les fonctions intégrées et strrchr strchr respectivement de gauche et à droite pour trouver chaque lettre, la fonction renvoie un pointeur, alors la différence entre le pointeur et le descripteur s est retourné.

    la mise en uvre de python de la langue:

    C mise en uvre cohérente et la réalisation du python.

    Code est la suivante:

    Java implémentation du langage:

    Java et le langage C pour obtenir essentiellement les mêmes.

    Code est la suivante:

    Yan ne perd pas la valeur de la machine phare, vivo Y93 première expérience: le même prix difficile à incontesté
    Précédent
    « Comédie Happy Man » producteurs « courbe cotées »: Hualu Baina proposé médias de joie de fusion, d'une valeur de 2 milliards aurait
    Prochain
    Elle était là, qui oserait se faire appeler Tvb une sur?
    marque Jingdong vivo shopping deux à onze jours pour ouvrir, vers le bas le plus droit 400 yuans
    coin caché du couloir, après l'attaque a volé les femmes célibataires effectivement disparu inexplicablement dans le suivi
    Le pouls de la ville « Yi » take-off « action », aujourd'hui témoin des changements dans la ville de Chongqing Monument de la Libération « City Gate » Yi-7 ans vous invitent déplacer
    Huayi Brothers 650 millions de vendre une participation de 25% silverside technologie, réduire le plateau de jeu, le retour complet du film?
    Désolé, Google Play est vraiment une "noble"!
    Spy Tucao CONCEPTS explosion laid x Nike SB Dunk UGLY section commémorative de Noël, la physique fait si gentil? !
    La sauce de soja dans le drame TVB plus de dix ans, comment elle est devenue la voix de la plus haute or comme la meilleure actrice?
    Cercles | NeurIPS montant cité 2017 papier classement annoncé en 2018, voici l'interprétation des trois premiers articles
    Yang Weidong: TV et web drame chose du passé, est maintenant l'ère de l'épisode super!
    algorithme de LeetCode basé sur 96 questions: l'ensemble ordonnée dans un arbre binaire équilibré
    2017 Tokyo Motor Show: Toyota Crown nouvelle voiture concept publié