123.字符串中的第一个唯一字符

题号387:

给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。

案例:

s = "leetcode"返回 0.

s = "loveleetcode",返回 2.

解题思路:

第一种,暴力破解,两层循环遍历,当第二层循环结束,都没有找到相同的字符,则返回该字符的位置;

第二种,先统计后查询,第一遍循环统计各个小写字母出现的次数,第二遍循环,当遇到统计次数为1的,即返回该字母位置。

代码实现:

第一种:

class Solution {

public:

int firstUniqChar(string s) {

for(int i=0;i

int j=0;

for(;j

if(i!=j && s[i]==s[j]){

break;

}

}

if(j==s.length())

return i;

}

return -1;

}

};

第二种:

class Solution {

public:

int firstUniqChar(string s) {

int count[26]=;

for(int i=0;i

count[s[i]-'a']++;

}

for(int i=0;i

if(count[s[i]-'a']==1){

return i;

}

}

return -1;

}

};

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180729G0OJB900?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券