创建串s 求从主串s的下标pos起,子串t第一次出现的位置,成功返回位置序号,不成功返回-1
时间: 2024-12-16 21:16:01 浏览: 6
创建字符串s并求解子串t在s中首次出现的位置,你可以采用字符串搜索算法,比如KMP算法、Boyer-Moore算法或者是朴素的线性查找。这里以简单的线性查找为例说明:
首先,你需要编写两个函数,一个是检查子串t是否存在于主串s中,另一个是找到子串t的起始位置。以下是Python的基本实现:
```python
def is_substring(s, t):
if s.find(t) != -1:
return True
else:
return False
def find_first_occurrence(s, t, pos=0):
if not is_substring(s, t):
return -1
else:
# 如果子串从pos开始,直接查找;否则从头开始
start = pos if pos >= len(t) else 0
for i in range(start, len(s)):
if s[i:i+len(t)] == t:
return i
return -1 # 如果遍历完整个s都未找到,返回-1表示找不到
# 使用示例
s = "hello world"
t = "world"
pos = 6 # 假设我们从索引6开始查找
print(find_first_occurrence(s, t, pos)) # 输出结果取决于实际输入
```
在这个例子中,`find_first_occurrence`函数会尝试查找从`s[pos:]`开始的部分是否包含`t`。如果找到,就返回子串的起始位置;如果没有找到,最后返回-1。
阅读全文