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


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

    import java.util.*;

    public class Class39 {

    public int FirstNotRepeatingChar(String str){
    if(str == null || str.length() < 0 || str.length() > 10000){
    return -1;
    }
    int value = 0;
    HashMap<Character,Integer> map = new HashMap<Character,Integer>();
    for(int i = 0; i < str.length(); i++){
    if(map.containsKey(str.charAt(i))){
    value = map.get(str.charAt(i));
    map.put(str.charAt(i), ++value);
    }else{
    map.put(str.charAt(i), 1);
    }
    }
    for(int i = 0; i < str.length(); i++){
    if(map.get(str.charAt(i)) == 1){
    return i;
    }
    }
    return -1;
    }

    public void test(){
    String a = "acbccccccca";
    System.out.print(FirstNotRepeatingChar(a));
    }


    public static void main(String[] args) {
    // TODO Auto-generated method stub
    Class39 c = new Class39();
    c.test();

    }

    }

  • 相关阅读:
    nginx缓存
    java 常用命令工具
    shell流程控制--循环语句
    Python 文档 涉及词汇
    python 学习网站
    python web入门程序
    编译安装 Python3.6.1
    正则表达式与grep
    编译安装 Nginx1.12.1
    查看进程号
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12518296.html
Copyright © 2020-2023  润新知