diff options
Diffstat (limited to 'other/first_unique_char_string.cpp')
-rw-r--r-- | other/first_unique_char_string.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/other/first_unique_char_string.cpp b/other/first_unique_char_string.cpp new file mode 100644 index 0000000..5f55821 --- /dev/null +++ b/other/first_unique_char_string.cpp @@ -0,0 +1,22 @@ +#include "leetcode.h" + +class Solution { +public: + int firstUniqChar(string s) { + unordered_map<char, pair<int, int>> ump; + int idx = s.size(); + for (int i = 0; i < s.size(); i++) { + ump[s[i]].first++; + ump[s[i]].second = i; + } + for (const auto &[c, p] : ump) + if (p.first == 1) + idx = min(idx, p.second); + return idx == s.size() ? -1 : idx; + } +}; + +int main() { + Solution obj; + cout << obj.firstUniqueChar("loveleetcode"); +} |