Kafka Eclipse centos7 SCI methods layer orm nlp 百度seo关键词优化 docker查看所有容器 svn更新本地代码 hadoop环境变量配置 hbuilder插件 python日期转时间戳 python变量类型 python函数的调用 python零基础 java抽象 java删除数组中的元素 java发邮件 java时间函数 java框架学习 java基础框架 java数组排序 嵌入式linux驱动程序设计从入门到精通 wps2011 乱码查看器 超级煎蛋卷 高效能人士的七个习惯pdf 销售单打印软件 su版本转换器 考试练习系统 vfloppy 卡巴斯基离线升级包 联发科mt6750 list删除指定元素 微信猜拳 python求和 男网红头像 ps去白底
当前位置: 首页 > 学习教程  > 编程语言

面试冲刺算法系列-45

2020/8/31 15:37:36 文章标签:

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

因为关于重复,所以用HashMap,又因为要有序,所以采用LinkedHashMap。

import java.util.LinkedHashMap;
public class Solution {
    public int FirstNotRepeatingChar(String str) {
        LinkedHashMap<Character,Integer> hp = new LinkedHashMap<>();
        for(int x = 0;x<str.length();x++){//遍历字符串,若某个字符出现多次则将该字符对应值加1,否则设为1
            if(hp.containsKey(str.charAt(x))){
                int sum = hp.get(str.charAt(x));
                sum ++;
                hp.put(str.charAt(x),sum);
            }else{
                hp.put(str.charAt(x),1);
            }
        }
        for(int i = 0;i<str.length();i++){//遍历字符串字符,将得到的字符与LinkedHashMap对应的键进行比对,若该键的值为1,则直接返回索引,否则返回-1
            char a = str.charAt(i);
            if((hp.get(a))==1){
                return i;
            }
            
        }
        return -1;
    }
}

本文链接: http://www.dtmao.cc/news_show_150380.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?