标签:字符 一次 第一个 map int str public LinkedHashMap charAt
第一个只出现一次的字符
题目:在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写)
分析:用map数据结构记录字符的出现次数,方法简单,效率也高。
import java.util.LinkedHashMap;
public class Solution {
public int FirstNotRepeatingChar(String str) {
LinkedHashMap<Character, Integer> map = new LinkedHashMap<>();
for(int i = 0; i < str.length(); ++i) {
if(map.containsKey(str.charAt(i))) {
int count = map.get(str.charAt(i));
map.put(str.charAt(i), ++count);
}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 static void main(String[] args) {
Solution test = new Solution();
int result = test.FirstNotRepeatingChar("google");
System.out.println(result);
}
}
标签:字符,一次,第一个,map,int,str,public,LinkedHashMap,charAt 来源: https://blog.csdn.net/weixin_45187564/article/details/100652991
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。