题目描述:

在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).(从0开始计数)

解题思路:

  • 对字符串进行遍历,以key:value的形式存入对象中,当然字典也是可以的
  • 遍历对象找到value为1的元素,使用indexOf查找返回索引

解题代码:

  1. function FirstNotRepeatingChar(str)
  2. {
  3. // write code here
  4. if(str === '') return -1;
  5. let obj = {};
  6. for(let i = 0;i<str.length;i++) {
  7. if(!obj[str[i]]) {
  8. obj[str[i]] = 1;
  9. }else {
  10. obj[str[i]] = obj[str[i]] + 1;
  11. }
  12. }
  13. for(let k in obj) {
  14. if(obj[k] === 1) {
  15. return str.indexOf(k);
  16. }
  17. }
  18. return -1;
  19. }