第一个只出现一次的字符
题目描述
在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).
类似桶排序的思路:
注意:在java中String的长度不能用str.size(),而只有str.length();
public class Solution { public int FirstNotRepeatingChar(String str) { int []cnt=new int[130]; for(int i=0;i<str.length();i++){ cnt[str.charAt(i)-'0']++; } for(int i=0;i<str.length();i++){ if(cnt[str.charAt(i)-'0']==1){ return i; } } return -1; } }
class Solution { public char firstUniqChar(String s) { int []f=new int[26]; int len=s.length(); for(int i=0;i<len;i++){ char ch=s.charAt(i); f[ch-97]++; } for(int i=0;i<len;i++){ char ch=s.charAt(i); if(f[ch-97]==1){ return ch; } } return ' '; } }
不一样的烟火