声明:原题目转载自LeetCode,解答部分为原创
Problem :
Given a string, find the first non-repeating character in it and return it's index. If it doesn't exist, return -1.
Examples:
s = "leetcode" return 0. s = "loveleetcode", return 2.
Solution:
思路:寻找字符串中的第一个不重复出现的字符,一种判断的思路是:某个字符的首次出现位置与最后出现位置相同,则可判断该字符在字符串中不重复。调用头文件<string>中的两个函数 find_first_of() 和 find_last_of() ,各自返回值为首次出现位置和末次出现位置,当两个返回值相等是,得到不重复出现的字符。
代码如下:
#include<iostream>
#include<string.h>
using namespace std;
class Solution {
public:
int firstUniqChar(string s) {
for(int i = 0 ; i < s.size() ; i ++)
{
// cout << "first :" << s.find_first_of(s[i]) << endl;
// cout << "last : "<< s.find_last_of(s[i]) << endl;
if(s.find_first_of(s[i]) == s.find_last_of(s[i]))
return i;
}
return -1;
}
};
int main()
{
Solution text;
cout << text.firstUniqChar("leetcode") << endl;
cout << text.firstUniqChar("loveleetcode") << endl;
return 0;
}