该函数接受输入的字符串列表x并返回整数ptr

时间:2018-11-09 05:58:11

标签: python regex string

该函数接受输入的字符串列表x并返回整数ptr
当且仅当x [ptr]是x中其他字符串中至少一个的子字符串。
 否则,它返回-1。
有人可以帮助我理解这一说法吗?

输出应该是这样的。

def test1_exercise_7(self):
    list1 = ["goat"]
    ptr = fun_exercise_7(list1)
    self.assertTrue(ptr == -1)

def test2_exercise_7(self):
    list1 = ["soul", "soulmate", "origin"]
    ptr = fun_exercise_7(list1)
    self.assertTrue(ptr == 0)

def test3_exercise_7(self):
    list1 = ["FASER", "submission", "online", "drive", "frequent"]
    ptr = fun_exercise_7(list1)
    self.assertTrue(ptr == -1)

def test4_exercise_7(self):
    list1 = ["banana", "applejuice", "kiwi", "strawberry", "apple", "peer"]
    ptr = fun_exercise_7(list1)
    self.assertTrue(ptr == 4)

2 个答案:

答案 0 :(得分:2)

为该函数提供了字符串列表。应该在列表中找到一个元素,该元素是列表中其他元素的子字符串。它应该返回包含子字符串的元素的索引;如果没有,则返回-1

例如,在第二个示例中,soulsoulmate的子字符串,因此它返回0,即soul的索引。在最后一个示例中,appleapplejuice的子字符串,因此它返回4,即索引apple。在另外两个示例中,所有字符串都不是其他字符串的子字符串,因此它们返回-1

如果满足条件的元素多于(例如在["soul", "mate", "soulmate"]中,soulmate都是soulmate的子字符串,在["soul", "ice", "soulmate", "juice"]中,soulsoulmate和{ {1}}是ice的子字符串。我想您可以使用为它设计的任何算法来返回遇到的第一个元素的索引。

答案 1 :(得分:0)

我认为,您必须返回字符串的索引,该索引是给定列表中其他字符串的子字符串。如果没有符合上述条件的字符串,则必须返回-1

以下功能将有助于实现这一目标!

def fun_exercise_7(words):
    for idx,word in enumerate(words):
        matching=[idx for i,w in enumerate(words) if i!=idx if word in w]
        if matching:
            return matching[0]
        else:
            continue
    return -1