📅  最后修改于: 2023-12-03 15:07:34.649000             🧑  作者: Mango
国际空间研究组织(Indian Space Research Organisation,简称ISRO)是印度的国家航天机构,成立于1969年,总部位于班加罗尔。ISRO的使命是促进印度的空间技术和应用领域的发展,并为印度的经济和人类发展做出贡献。
这个问题是 ISRO CS 2016 计算机科学考试的第65道题目,具体内容如下:
给定一个字符串S,找到S中第一个非重复字符的位置。如果没有,则返回-1。
例如,如果 S = "leetcode",则返回0。
"leetcode"
0
定义一个hashmap,key表示字符,value表示字符出现的次数。第一次遍历字符串,将每个字符出现的次数存入hashmap中。第二次遍历字符串,找到第一个出现次数为1的字符,返回它的位置。如果遍历完整个字符串都没有找到符合条件的字符,返回-1。
具体实现请看代码:
def firstUniqChar(s: str) -> int:
if not s:
return -1
char_map = {}
for c in s:
if c in char_map:
char_map[c] += 1
else:
char_map[c] = 1
for i in range(len(s)):
if char_map[s[i]] == 1:
return i
return -1
本题考察了字符串的遍历和哈希表的应用。需要注意的是,在字符串为空的情况下,应返回-1。