NC31. 第一个只出现一次的字符
描述
示例1
输入:
"google"
输出:
4
示例2
输入:
"aa"
输出:
-1
C++ 解法, 执行用时: 2ms, 内存消耗: 356KB, 提交时间: 2021-04-18
#include<map> class Solution { public: int FirstNotRepeatingChar(string str) { int n = str.size(); if (n == 0) return -1; if (n == 1) return 0; for (int i = 0; i < n; i++){ int flag = 0; for (int j = 0; j < n; j++){ if (i != j && str[i] == str[j]){ flag = 1; break; } } if (flag == 0) return i; } return -1; } };
C++ 解法, 执行用时: 2ms, 内存消耗: 356KB, 提交时间: 2021-03-28
class Solution { public: int FirstNotRepeatingChar(string str) { if(str.length()==0) return -1; for(int i=0;i<str.length()-1;i++) if(str.find_last_of(str[i])==i && str.find_first_of(str[i])==i) return i; return -1; } };
C++ 解法, 执行用时: 2ms, 内存消耗: 356KB, 提交时间: 2021-03-20
class Solution { public: int FirstNotRepeatingChar(string str) { if(str.length()==0){ return -1; } for(int i=0;i<str.length()-1;i++){ if(str.find_last_of(str[i])==i && str.find_first_of(str[i])==i){ return i; } } return -1; } };
C++ 解法, 执行用时: 2ms, 内存消耗: 356KB, 提交时间: 2021-03-19
class Solution { public: int FirstNotRepeatingChar(string str) { if(str.length()==0) return -1; vector<int> count(58,0); for(int i=0;i<str.length();i++){ count[str[i]-'A']++; } for(int i=0;i<str.length();i++){ if(count[str[i]-'A']==1) return i; } return -1; } };
C++ 解法, 执行用时: 2ms, 内存消耗: 356KB, 提交时间: 2021-03-15
class Solution { public: int FirstNotRepeatingChar(string str) { for(int i = 0; i < str.size(); i++){ char record = str[i]; for(int j = i + 1; j < str.size(); j++){ if(record == str[j]){ str[j] = -1; str[i] = -1; } } } for(int i = 0; i < str.size(); i++){ if(str[i] != -1){ return i; } } return -1; } };