zoukankan      html  css  js  c++  java
  • 剑指offer三十四之第一个只出现一次的字符

    一、题目

      在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置

    二、思路

      详见代码注释。

    三、代码

    import java.util.LinkedHashMap;
    import java.util.Map;
    import java.util.Set;
    
    
    public class Solution {
        public int FirstNotRepeatingChar(String str) {
            if(str==null||str.length()==0){
                return -1;
            }
            
            //统计字符串的个数,注意用LinkedHashMap
            LinkedHashMap<Character, Integer> lhm = new LinkedHashMap<Character, Integer>();
            for (char c : str.toCharArray()) {
                if (lhm.containsKey(c)) {
                    lhm.put(c, lhm.get(c) + 1);
                } else {
                    lhm.put(c, 1);
                }
            }
    
            //遍历map,寻找第一个只出现一次的数
            int num = 0;
            Set<Map.Entry<Character, Integer>> set = lhm.entrySet();
            for (Map.Entry<Character, Integer> es : set) {
                char key = es.getKey();
                int value = es.getValue();
                if (value == 1) {
                    num = key;
                    break;
                }
            }
    
            //查找索引index
            int index=0;
            
            for(int i=0;i<str.length();i++){
                if(str.charAt(i)==num){
                    index=i;
                    break;
                }
            }
            
            //返回索引的位置
            return index;
        }
    }
    View Code

    ---------------------------------------------

    参考链接:

    https://www.nowcoder.com/practice/1c82e8cf713b4bbeb2a5b31cf5b0417c?tpId=13&tqId=11187&rp=2&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

  • 相关阅读:
    利用百度轻松语音合成,语音识别
    python圆周率计算小程序(非常慢)
    python成语接龙小游戏
    在数组添加元素时报错:IndexError: list index out of range
    Redis-jedis的使用
    Shiro整合SpringMVC简单实例(一)
    容器
    防重提交功能(Token技术的引入)
    PageUtil
    单例设计模式
  • 原文地址:https://www.cnblogs.com/hezhiyao/p/7653779.html
Copyright © 2011-2022 走看看