zoukankan      html  css  js  c++  java
  • 剑指Offer——第一个只出现一次的字符

    1、题目描述

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

    2、代码实现

    public class Solution {
        public int FirstNotRepeatingChar(String str) {
            if (str == null || str.length() == 0) {
                return -1;
            }
            char[] chars = str.toCharArray();
            java.util.HashMap<Character, Boolean> hm = new java.util.HashMap<Character, Boolean>();
            for (int i = 0; i < chars.length; i++) {
                //如果某一个字符已经出现过,那么就把该字符的value值改为true
                if (hm.containsKey(chars[i])) {
                    hm.put(chars[i], true);
                } else {
                    // //如果某一个字符没有出现过,那么该字符的value值就是false
                    hm.put(chars[i], false);
                }
            }
            for (int i = 0; i < chars.length; i++) {
                if (hm.get(chars[i]) == false) {
                    return i;
                }
            }
            return -1;
        }
    }
    

      

  • 相关阅读:
    cg数据类型
    线程和流的历史遗留
    流的总结及小问题

    集合练习
    集合属性的整理
    集合
    整理
    面向对象中知识的薄弱点
    自己的小问题和数组常用的方法
  • 原文地址:https://www.cnblogs.com/BaoZiY/p/11182355.html
Copyright © 2011-2022 走看看