字符串中的第一个唯一字符
给定一个字符串s,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回-1。
示例1
输入:s = "loveleetcode"
输出:2
示例2
输入:s = "aabb"
输出:-1
示例3:
输入:s = "leetcode"
输出:0
自己写的,愣是不知道为啥错,再看看
#include <iostream>
#include <map>
using namespace std;
int main() {
string s;
int n=0;
cin>>n;
for(int i = 0;i < n;i++){
cin >> s;
cout<<s;
}
map<char,int>m;
for(int j=1;j<=s.size();j++){
m[s[j-1]]++;
printf("%s的次数为%d\n",s[j-1],m[s[j-1]]);
if(j=s.size()){
if(m[s[j-1]]==1) printf("%s",s[j-1]);
}
else
continue;
}
}
#include <iostream>
using namespace std;
int main() {
string s;
cin >> s;
int map[256]={0};
int size=s.size();
for(int i=0;i<size;i++){
map[s[i]]+=1;
}
for(int j=0;j<size;j++){
if(map[s[j]]==1){
printf("字符串中的第一个唯一字符是%d",j);
break;} //在这break就可以符合题目的输出“第一个”的要求
else {
continue;
}
}
return 0;
}
ok 改了改 思路还是那个思路