给定字符串M和N检查M中是否包含N,包含则返回N在M中的第一个位置,不包含返回-1,MN由所有大小写字母空格英文逗号英文句号组成
时间: 2024-12-20 20:30:49 浏览: 4
字符串的组合算法问题的C语言实现攻略
这个问题通常被称为“模式匹配”或者“查找子串”的问题,在计算机科学中,可以使用多种算法来解决,比如朴素的线性搜索、KMP算法(Knuth-Morris-Pratt算法)、Boyer-Moore算法或者Rabin-Karp等。其中,线性搜索是最简单直接的方法,逐字符遍历主字符串M,从左到右检查每个位置是否匹配子字符串N。
Python代码示例:
```python
def find_substring(M, N):
M_len = len(M)
N_len = len(N)
# 如果N比M还长,不可能包含于M中
if N_len > M_len:
return -1
for i in range(M_len - N_len + 1): # 遍历M的所有可能起始位置
if M[i:i+N_len] == N: # 如果找到匹配的部分
return i # 返回N在M中的起始位置
return -1 # 如果没有找到匹配,返回-1
# 示例
M = "Hello, World!"
N = "World"
print(find_substring(M, N)) # 输出: 7
```
阅读全文