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

    题目:

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

    解答:

     1 public class Solution {
     2     public static void main(String[] args) {
     3         String str = "ABBBBBBBCCCCCDDDDDDDEEE";
     4         System.out.println(FirstNotRepeatingChar(str));
     5     }
     6 
     7     public static int FirstNotRepeatingChar(String str) {
     8         if(str == null || str.length() == 0) {
     9             return -1;
    10         }
    11 
    12         Map<Character, Integer> map = new HashMap<>(); // HashMap
    13 
    14         for(int i = 0; i < str.length(); i++) {
    15 
    16             if(map.containsKey(str.charAt(i))) {
    17                 int count = map.get(str.charAt(i));
    18                 map.put(str.charAt(i), count+1);
    19             } else {
    20                 map.put(str.charAt(i), 1);
    21             }
    22         }
    23 
    24         for(int i = 0; i < str.length(); i++) {
    25             if(map.get(str.charAt(i)) == 1) {
    26                 return i; // return index
    27             }
    28         }
    29 
    30         return -1;
    31     }
    32 }

  • 相关阅读:
    模拟黑客入侵,恶搞小伙伴的利器
    牛客网算法竞赛难题
    ybt ——1346【例4-7】亲戚
    FBI树
    noi2020第二题
    noi2020第一题
    Happiness
    YiJuWuLiaoDeHua
    挂掉了一个u盘
    NOIp2020
  • 原文地址:https://www.cnblogs.com/wylwyl/p/10475080.html
Copyright © 2011-2022 走看看