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

案例:

s = "leetcode"

返回 0.

s = "loveleetcode",

返回 2.

注意事项:您可以假定该字符串只包含小写字母。

/**
* @param {string} s
* @return {number}
*/
var firstUniqChar = function (s) {
let len = s.length, obj = {};
for (let i = 0; i !== len; i++) {
if (obj[s[i]] === undefined) {
obj[s[i]] = 0;
} else {
obj[s[i]]++;
}
}
for (let key of Object.keys(obj)) {
if (obj[key] === 0) {
return s.indexOf(key);
}
}
return -1;
};

我又想了好久,明明看上去好像是个比较简单的问题…

然后看一眼大佬的解法,牛皮

/**
* @param {string} s
* @return {number}
*/
var firstUniqChar = function(s) {
for (var i = 0; i < s.length; i++) {
if (s.indexOf(s[i]) == i && s.indexOf(s[i], i + 1) == -1) {
return i;
}
}
return -1;
};

最新文章

  1. iOS中NSLog输出格式大全
  2. Linux head和tail命令
  3. CF 435B Pasha Maximizes(贪心)
  4. 【MVC 4】6.SportsSore:导航
  5. Java高级之虚拟机加载机制
  6. sk_buff 结构分析
  7. BPEL_Oracle BPEL新一代工作流介绍(概念)
  8. 创建和编辑 crontab 文件
  9. 【CF492E】【数学】Vanya and Field
  10. ecside使用笔记(1)
  11. java concurrency: daemon线程
  12. [C++参考]私有成员变量的理解
  13. 基于visual Studio2013解决C语言竞赛题之1031猜数
  14. [Q]AdobePDF打印机“仅依靠系统字体”问题
  15. MongoDB建立主从复制小案例(一主一从)
  16. 最值得收藏的java技术博客(Java篇)
  17. windos64位下python3.6安装pywin32的问题
  18. 集合之TreeMap(含JDK1.8源码分析)
  19. 自己动手编译Linux内核
  20. dp——环形石子合并(区间dp)

热门文章

  1. c3p0、dbcp和proxool比较
  2. WCF配置多个终节点
  3. 二维码生成插件qrious及网站扫码登录的一些理解
  4. Gym101128G:Game of Cards
  5. yum基本用法与修改源
  6. django项目搭建及Session使用
  7. C#在控制台输出异常所在的行数
  8. [模板]RMQ(冲刺准备中)
  9. Hive入门学习随笔(二)
  10. charles4.2下载与破解方法以及配置https.RP