您的位置 首页 技术

java实现查找第一个只出现一次的字符

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

问题:

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

相关视频教程推荐:java在线教程

解决思路:

题目要求很明确,就是遍历字符串,并且给字符计数,计数之后,找到计数为1的字符即可。很明显这需要用到hashmap,key就是字符串中的各个字符,而value就是这个字符在字符串中出现的次数。

代码如下:

import java.util.LinkedHashMap;public class Solution {    public int FirstNotRepeatingChar(String str) {        int len = str.length();        LinkedHashMap<Character, Integer> map = new LinkedHashMap<>();        for (int i = 0; i < len; i++) {            char c = str.charAt(i);            Integer val = map.get(c);            map.merge(c, 1, (oldValue, newValue) -> oldValue + newValue);        }        Character resultKey = null;        for (Character c : map.keySet()){            if (map.get(c) == 1){                resultKey = c;                break;            }        }        for (int i = 0 ;i < len; i++){            if (str.charAt(i) == resultKey){                return i;            }        }               return -1;    }}

相关文章教程推荐:java快速入门

以上就是java实现查找第一个只出现一次的字符的详细内容,更多请关注24课堂在线网其它相关文章!

本文来自网络,不代表24小时课堂在线立场,转载请注明出处:https://www.24ketang.cn/10628.html

为您推荐

返回顶部