📌  相关文章
📜  查找第一个字符串的字符,该字符存在于第二字符串最小索引(1)

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

查找第一个字符串的字符,该字符存在于第二字符串最小索引

这是一个常见的编程问题,在两个字符串中查找一个字符,使得该字符出现在第二个字符串中的最小索引处。如果找不到这样的字符,返回-1。

下面是一个简单的Python实现:

def find_common_char(s1, s2):
    for c in s1:
        if c in s2:
            return s2.index(c)
    return -1

该函数首先遍历第一个字符串中的每个字符,如果找到一个字符在第二个字符串中出现,那么返回该字符在第二个字符串中的位置。

如果在遍历完第一个字符串后没有找到任何共同的字符,那么返回-1。

该算法时间复杂度为O(n * m),其中n和m是两个字符串的长度。这个算法对于较小的字符串很有效,但对于较长的字符串则可能会非常慢。

一种更快的解决方案是使用哈希表。使用哈希表可以将查找时间降低到O(n + m)。其中n和m是两个字符串的长度。

下面是Python中使用哈希表的实现:

def find_common_char(s1, s2):
    index = {}
    for i, c in enumerate(s2):
        index.setdefault(c, i)
    for i, c in enumerate(s1):
        if c in index:
            return index[c]
    return -1

该函数首先遍历第二个字符串并创建一个哈希表,其中键是字符,值是该字符在字符串中的最小索引。

接下来,遍历第一个字符串并检查每个字符是否出现在哈希表中。如果找到一个字符,返回该字符在第二个字符串中的索引。

如果在遍历完第一个字符串后没有找到任何共同的字符,那么返回-1。

以上是Python实现,其他编程语言也可以参考相同的思路来实现。