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

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

国际空间研究组织 | ISRO CS 2009 | 问题 17

该问题是一道关于字符串操作的题目,题目描述如下:

给定一个字符串S和一个字母c,你需要找到S中所有c的下标,并将它们存储在一个新的数组中。如果S中找不到c,则返回-1。

示例输入1:

S = "hello" c = 'l'

示例输出1:

[2, 3]

示例输入2:

S = "world" c = 'a'

示例输出2:

[-1]

解法

我们可以使用python内置的字符串操作函数 find() 来找到字符串中某个字符的位置。如果找到了,则返回该字符的索引位置,如果找不到,则返回-1。

那么我们可以使用一个循环来遍历整个字符串,每次查找该字符是否存在。如果存在,就将其索引位置添加到一个列表中。

下面是完整的代码实现:

def find_char_positions(string, char):
    positions = []
    index = string.find(char)
    while index != -1:
        positions.append(index)
        index = string.find(char, index + 1)
    if len(positions) > 0:
        return positions
    else:
        return [-1]

以上代码中,我们定义了一个函数 find_char_positions() 来处理该问题。该函数接受两个参数:字符串string和字符char。

在函数的第一行,我们声明了一个空列表 positions,用于存储该字符的索引位置。

接下来,在 while 循环中,我们使用函数 find() 来查找字符串中该字符的位置。如果找到了,就将其索引位置添加到列表中,并继续查找下一个匹配项。否则,返回 [-1] 表示没找到。

完成后,我们可以使用下面的代码来测试函数:

print(find_char_positions("hello", "l"))  # [2, 3]
print(find_char_positions("world", "a"))  # [-1]
总结

这道题目主要考察了我们对字符串操作函数的使用,以及对列表的操作。通过实现该函数,我们可以提高自己在字符串操作上的熟练度,同时也能够更好地运用 Python 的语言特性。