📜  资质| Wipro模拟测试|问题20(1)

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

资质 | Wipro 模拟测试 | 问题 20

本文是关于 Wipro 公司模拟测试的问题20的介绍,旨在帮助程序员更好地理解和解决这个问题。

问题描述

在一个字符串中找到第一个不重复的字符并返回它的位置。如果不存在这样的字符,则返回 -1。

例如,输入字符串 "leetcode",输出应该为 0。

解法

为了解决这个问题,我们需要遍历字符串并记录每个字符的频率。然后,我们再次遍历该字符串并找到第一个出现次数为1的字符。

def first_unique_char(s: str) -> int:
    count = {}
    for c in s:
        if c in count:
            count[c] += 1
        else:
            count[c] = 1
    for i in range(len(s)):
        if count[s[i]] == 1:
            return i
    return -1

在这个解法中,我们使用字典记录每个字符的频率。然后,我们再次遍历该字符串并找到第一个出现次数为1的字符。如果找到了这样的字符,则返回该字符的位置。否则,返回 -1。

测试

为了测试我们的代码,我们可以使用一些简单的测试用例。

assert first_unique_char('leetcode') == 0
assert first_unique_char('loveleetcode') == 2
assert first_unique_char('aabbcc') == -1
总结

本文介绍了 Wipro 公司模拟测试中的问题20,为程序员提供了解决该问题的解法。我们还提供了简单的测试用例以验证代码的正确性。