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

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

王林
王林avant
2019-11-29 17:13:342892parcourir

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;
    }
}

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer