1 def naive_matching(t , p): 2 m, n = len(p) , len(t) 3 i , j = 0, 0 4 while i < m and j < n: # i==m means a matching 5 i f p[ i ] == t [ j ] : # ok! consider next char in p 6 i , j = i + 1, j + 1 7 else : # no! consider next position in t 8 i , j = 0, j − i + 1 9 i f i == m: # find a matching, return its index 10 return j − i 11 return −1 # no matching, return special value 12 13 mainString = ”ABAAABCDBBABCDDEBCABC” 14 pattern = ”ABC” 15 position = naive_matching(mainString, pattern) 16 print(”Pattern␣found␣in␣position␣” , position) 解释每一行代码
时间: 2024-03-31 10:34:57 浏览: 158
Naive_Gauss_Elimination:该程序通过向量 n 对 nxn 矩阵执行朴素高斯消除
1. 定义一个函数 naive_matching,接收两个参数 t 和 p,表示在字符串 t 中查找子串 p。
2. 获取子串 p 和字符串 t 的长度,分别赋值给变量 m 和 n。
3. 初始化两个指针 i 和 j,分别指向子串 p 和字符串 t 的起始位置。
4. 进入循环,如果 i 等于 m,说明已经找到了匹配,退出循环。
5. 如果当前位置的字符相同,说明匹配成功,将两个指针都向后移动一位。
6. 如果当前位置的字符不同,说明匹配失败,重置指针 i,并将指针 j 向后移动 i+1 位。
7. 如果循环结束后还没有找到匹配,返回特殊值 -1。
8. 在主程序中定义一个字符串 mainString 和一个模式串 pattern,调用函数 naive_matching 查找 pattern 在 mainString 中的位置。
9. 如果找到匹配,输出匹配的位置;否则输出未找到匹配的特殊值 -1。
阅读全文