栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

7.字符串中的第一个唯一字符

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

7.字符串中的第一个唯一字符


解题思路分析:首先将所有不同的字符存入hashset中,然后将重复与不重复的元素用key-value对区分开来,重复符号的value均为2,不重复符号的value均为1。然后将所有的value的键重新构成一个hashset,对这个hashset进行遍历,来观察位于字符串的第几个位置
学习函数:charAt(i) 函数 是获取字符串中i位置的字符

class Solution {
    public int firstUniqChar(String s) {
        int size=s.length();
        Set set=new HashSet<>();
        for(int i=0;i hm=new HashMap<>();
        Character key=' ';
        Integer value=0;
        for (Character c:set) {
            value=0;
            key=c;
            for (int i = 0; i < size; i++) {
                if(c==s.charAt(i)){
                    value++;
                }
                if(value>1){
                    break;//一旦发现有两个重复出现时,已经没有必要统计
                }
            }
            hm.put(key,value);//值只有1和2两种情况
        }

        //存放没有重复的字符
        Set uniqArr =new HashSet<>();
        if(hm.containsValue(1)){
            //说明有不重复的字符
            for (Character c:set) {
                if(hm.get(c)==1){
                    uniqArr.add(c);
                }
            }
//            int length=uniqArr.size();
            int min=size-1;
            int temp=0;
            for (Character c:uniqArr) {
                temp = s.indexOf(c);
                if(temp<=min){
                    min=temp;
                }
            }
            return min;
        }
        return -1;
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/643607.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号