问题

该文章的最新版本已迁移至个人博客【比特飞】,单击链接 https://www.byteflying.com/archives/3939 访问。

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

s = "leetcode",返回 0.

s = "loveleetcode",返回 2.

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


Given a string, find the first non-repeating character in it and return it's index. If it doesn't exist, return -1.

s = "leetcode",return 0.

s = "loveleetcode",return 2.

Note: You may assume the string contain only lowercase letters.


示例

该文章的最新版本已迁移至个人博客【比特飞】,单击链接 https://www.byteflying.com/archives/3939 访问。

public class Program {

    public static void Main(string[] args) {
var s = "loveleetcode"; var res = FirstUniqChar(s);
Console.WriteLine(res); Console.ReadKey();
} private static int FirstUniqChar(string s) {
var dic = new Dictionary<int, int>();
for(var i = 0; i < s.Length; i++) {
if(dic.ContainsKey(s[i])) {
dic[s[i]]++;
} else {
dic[s[i]] = 1;
}
}
for(var i = 0; i < s.Length; i++) {
if(dic[s[i]] == 1) return i;
}
return -1;
} }

以上给出1种算法实现,以下是这个案例的输出结果:

该文章的最新版本已迁移至个人博客【比特飞】,单击链接 https://www.byteflying.com/archives/3939 访问。

2

分析:

显而易见,以上算法的时间复杂度为: 

最新文章

  1. .NET 动态脚本语言Script.NET 入门指南 Quick Start
  2. [OpenCV] Samples 08: edge
  3. 自制简单实用IoC
  4. UVA 11076 - Add Again(组合)
  5. MySQL 存储过程传参之in, out, inout 参数用法
  6. [Js]焦点图轮播效果
  7. magic_quotes_runtime 与 magic_quotes_gpc
  8. 无法将 grub-efl-amd64-signed 软件包安装/target/ 中
  9. window.top、window.parent
  10. Java编写ArrayBasic制作一个简单的酒店管理系统
  11. 怪兽z主机豪华版 答问。
  12. Openfire开发广播服务接口,支持离线广播消息
  13. python爬微信公众号前10篇历史文章(5)-JSON相关内容小结
  14. NSDate-日期类&amp;nbsp;OC——第七天(1)
  15. java 浅复制 代码
  16. worker pool Handling 1 Million Requests per Minute with Golang
  17. Python文档记录
  18. Spring Boot重要内容
  19. Linux下部署Samba服务环境的操作记录
  20. js中的jsonp

热门文章

  1. Harbor打怪升级
  2. try-catch- finally块中, finally块唯一不执行的情况是什么?
  3. 产品升级前后MD5码对比
  4. 题解 洛谷 P4171 【[JSOI2010]满汉全席】
  5. 学习 bypass csp记录
  6. ContiPerf
  7. web自动化 -- 框架
  8. 修改map中原来的各种Key
  9. PHP设计模式之----简单工厂模式
  10. Day15_阿里短信