Maison > Java > javaDidacticiel > le corps du texte

Java implémente la recherche du premier caractère qui n'apparaît qu'une seule fois

王林
Libérer: 2019-11-29 17:13:34
avant
2898 Les gens l'ont consulté

Java implémente la recherche du premier caractère qui n'apparaît qu'une seule fois

Problème :

Trouver le premier caractère qui n'apparaît qu'une seule fois dans une chaîne (0<=longueur de chaîne<=10000, toutes composées de lettres) et renvoie sinon, sa position renvoie -1 (doit être sensible à la casse)

Tutoriels vidéo associés recommandés : Tutoriels en ligne Java

Idées de solutions :

L'exigence de la question est très claire, qui consiste à parcourir la chaîne et à compter les caractères. Après avoir compté, trouvez simplement le caractère avec un compte de 1. Évidemment, cela nécessite l'utilisation de hashmap, la clé est chaque caractère de la chaîne et la valeur est le nombre de fois que ce caractère apparaît dans la chaîne.

Le code est le suivant :

import java.util.LinkedHashMap;
public class Solution {
    public int FirstNotRepeatingChar(String str) {
        int len = str.length();
        LinkedHashMap<Character, Integer> map = new LinkedHashMap<>();
        for (int i = 0; i < len; i++) {
            char c = str.charAt(i);
            Integer val = map.get(c);
            map.merge(c, 1, (oldValue, newValue) -> oldValue + newValue);
        }
        Character resultKey = null;
        for (Character c : map.keySet()){
            if (map.get(c) == 1){
                resultKey = c;
                break;
            }
        }
        for (int i = 0 ;i < len; i++){
            if (str.charAt(i) == resultKey){
                return i;
            }
        }        
       return -1;
    }
}
Copier après la connexion

Articles et tutoriels connexes recommandés : Java Quick Start

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal