2020.5.18 面试的小姐姐非常温柔,总共出了三道题,还会引导,我基本上说了思路,但是实现起来有差距,今天整理一下:
题目一:给定一个字符串,找到这个字符串中的第一个只出现一次的字符。
思路:
首先判断字符串是否为空,或者length==0。如果是,返回-1;否则:
1)维护一个hashMap的变量,盛放字符串中各个字符出现的次数,new HashMap<Character,Integer> k:字符;v:次数
2)遍历字符串中的各个字符,判断是否在hash表中存在,如果存在,将v加1,否则put<c,1>
3)重新遍历字符串,依次判断hash表中这个字符对应的v值是否为1,若是,返回当前索引;
代码如下:
private static int firstchar(String s) {
if(s==null || s.length()==0) {
return -1;
}
HashMap<Character,Integer> aa=new HashMap<Character,Integer>();