📌  相关文章
📜  国际空间研究组织 | ISRO CS 2013 |问题 42(1)

📅  最后修改于: 2023-12-03 15:23:03.141000             🧑  作者: Mango

国际空间研究组织 | ISRO CS 2013 |问题 42

这是国际空间研究组织的2013年计算机科学技术考试中的第42个问题,涉及到字符串操作和逻辑判断。

问题描述

给定一个字符串s,找到该字符串中第一个非重复字符的下标。如果没有,则返回-1。

输入格式
  • 第一行包含一个整数T,表示测试用例的数量。
  • 每个测试用例包含一个字符串s。
输出格式

对于每个测试用例,输出该字符串中第一个非重复字符的下标,或-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语言实现了题目所要求的功能,如果你使用其他语言,则需要相应地修改代码。