
问题
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -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.
示例
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种算法实现,以下是这个案例的输出结果:
2
分析:
显而易见,以上算法的时间复杂度为: 。
本文由 .Net中文网 原创发布,欢迎大家踊跃转载。
转载请注明本文地址:https://www.byteflying.com/archives/3939。