剑指Offer28:找到字符串中第一个只出现一次的字符

找到字符串中第一个只出现一次的字符

问题描述

在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写)

问题分析:

char是一次长度为8的数据类型。因此有256中可能。创建一个大小为256的数组,下标对应ASCII码值,存储的数是出现的次数。

public class Code028_04 {
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        String str=sc.nextLine();
//        String result=firstOneTimeAppear(str);
        String result=firstOneTimeAppear2(str);
        System.out.println(result);
    }
    private static String firstOneTimeAppear(String str){
        if(str.length()<0 || str.length()>10000){
            return "-1";
        }
        //position按照字符串中字符出现的次序进行次数存储
        int[] position=new int[256];
        for(int i=0;i map=new HashMap<>();
        for(int i=0;i

你可能感兴趣的:(剑指Offer系列(java))