El primer carácter no repetitivo en la secuencia de caracteres (Java)

El primer carácter no repetitivo en la secuencia de caracteres (Java)

Tema: implemente una función para encontrar el primer carácter en la secuencia de caracteres que aparece solo una vez. Por ejemplo, cuando solo los dos primeros caracteres "go" se leen de la secuencia de caracteres, el primer carácter que aparece solo una vez es "g". Al leer los primeros seis caracteres "google" de la secuencia de caracteres, el primer carácter que aparece solo una vez es "l".
Código:

import java.util.HashMap;
import java.util.Map;

/**
 * @desc 字符流中第一个不重复的字符
 * @author zhaoliang
 * @date 20200415
 */
public class Main50 {

    private Map<Character,Integer> map = new HashMap<>();//保存每个字符出现的次数

    private StringBuilder str = new StringBuilder();//保存字符流

    private int index = 0;//保存字符只出现一次的第一个位置

    //Insert one char from stringstream
    public void Insert(char ch)
    {
        str.append(ch);
        map.put(ch,map.getOrDefault(ch,0)+1);//无取0,有+1
    }
    //return the first appearence once char in current stringstream
    public char FirstAppearingOnce()
    {
        while (index <str.length()){
            if(map.get(str.charAt(index))==1){
                return str.charAt(index);
            }
            index++;
        }
        return '#';
    }
}
71 artículos originales publicados · Me gusta0 · Visitas 872

Supongo que te gusta

Origin blog.csdn.net/sinat_40968110/article/details/105527329
Recomendado
Clasificación