📅  最后修改于: 2023-12-03 15:23:02.790000             🧑  作者: Mango
该问题是一道关于字符串操作的题目,题目描述如下:
给定一个字符串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 的语言特性。