class Solution { public: int FirstNotRepeatingChar(string str) { char ch; int j; for(int i = 0;i<str.length();i++){ ch = str[i]; for(j=0;j<i;j++){ if(ch == str[j]) break; } if(j == i) for(j=i+1;j<str.length();j++){ if(ch == str[j]) break; } if(j == str.length()) return i; } return -1; } };
class Solution { public char firstUniqChar(String s) { if(s.length()==0) return ‘ ‘; HashMap<Character,Integer> mp = new LinkedHashMap<>(); int value; for(int i = 0; i < s.length(); i++){ if(mp.get(s.charAt(i))==null) mp.put(s.charAt(i),1); else{ value = mp.get(s.charAt(i)); mp.put(s.charAt(i),++value); } } for(Character ch:mp.keySet()){ value = mp.get(ch); if(value == 1) return ch; } return ‘ ‘; } }
利用map实现时间复杂度为O(n)
class Solution { public: char firstUniqChar(string s) { unordered_map<char,int> mp; for(int i=0;i<s.length();i++){ mp.insert(make_pair(s[i],0)); } for(int i=0;i<s.length();i++){ mp[s[i]]++; } for(int i=0;i<s.length();i++){ if(mp[s[i]] == 1) return s[i]; } return ‘ ‘; } };
原文:https://www.cnblogs.com/ttzz/p/13746636.html