📅  最后修改于: 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实现,其他编程语言也可以参考相同的思路来实现。