给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
示例:
s = “leetcode”
返回 0
s = “loveleetcode”
返回 2
class Solution {
public int firstUniqChar(String s) {
//将字符串转换为数组
char s1[] = s.toCharArray();
//定义一个标记数组,用来标记数组中每一个字符
boolean []flag = new boolean[s1.length];
//循环遍历,如果有相同的字符,标记数组相应进行标记为true
for(int i=0;i
解法二(利用HashMap,两次循环)
class Solution {
public int firstUniqChar(String s) {
//定义HashMap
Map count = new HashMap();
//第一次循环,将每个字符以及相应的出现次数放进HashMap
for(int i=0;i
解法三(利用C++的String容器类方法)
class Solution {
public:
int firstUniqChar(string s) {
//利用C++的String容器类方法
for(int i=0;i
解法三中的find()方法意思是返回找到的第一个元素下标,而rfind()方法意思是返回找到的最后一个元素下标。此处的意思是如果找到的第一个下标和找到的最后一个下标刚好是同一个下标,那么这个元素在字符串中只出现过一次。



