📅  最后修改于: 2023-12-03 15:23:03.141000             🧑  作者: Mango
这是国际空间研究组织的2013年计算机科学技术考试中的第42个问题,涉及到字符串操作和逻辑判断。
给定一个字符串s,找到该字符串中第一个非重复字符的下标。如果没有,则返回-1。
对于每个测试用例,输出该字符串中第一个非重复字符的下标,或-1(如果没有)。
输入:
2
hello
geeksforgeeks
输出:
0
0
我们可以使用一个哈希表来记录每个字符出现的次数,然后再遍历一遍字符串,找到第一个出现次数为1的字符的下标即可。
具体实现可以参考下面的代码片段。
# 定义一个哈希表,用于记录每个字符出现的次数
char_count = {}
# 读取输入的测试用例数量
t = int(input())
# 处理每个测试用例
for i in range(t):
# 读取当前测试用例的字符串
s = input()
# 遍历字符串,统计每个字符出现的次数
for c in s:
char_count[c] = char_count.get(c, 0) + 1
# 再次遍历字符串,找到第一个非重复字符的下标
found = False
for j in range(len(s)):
if char_count[s[j]] == 1:
found = True
print(j)
break
# 如果没有找到非重复字符,则输出-1
if not found:
print(-1)
# 清空哈希表
char_count.clear()
以上代码使用了Python语言实现了题目所要求的功能,如果你使用其他语言,则需要相应地修改代码。