美文网首页数据结构
数据结构-串:朴素模式匹配算法(暴力子字符串查找算法)

数据结构-串:朴素模式匹配算法(暴力子字符串查找算法)

作者: 天降小纸箱 | 来源:发表于2020-09-23 20:55 被阅读0次

题目:1368: 简单模式匹配算法
描述:给你两个字符串A与B,请问B是否作为子串在A中出现过?

/**
 * 串的 朴素模式匹配算法 (暴力子字符串查找算法)
 */

#include <stdio.h>
#include <bits/stdc++.h>

using namespace std;

/** 
 * 朴素匹配算法
 * @param S : 主串
 * @param T : 子串
 * @return
 */
int indexSubString(string S, string T) {
    int sLen = S.length();
    int tLen = T.length();
    if (tLen > sLen) return -1;
    int i = 0, j = 0;
    while (i < sLen && j < tLen) {
        if (S[i] == T[j]) {
            i++;
            j++;
        } else {
            i = i - j + 1; // 位序从1开始计数
            j = 0;
        }
    }
    if (j == tLen) return i - tLen + 1;
    return -1; // 未找到匹配
}

int main(){
    string S,T;
    cin >> S >> T;
    indexSubString(S,T) == -1 ? printf("NO") : printf("YES");

}

运行结果

相关文章

网友评论

    本文标题:数据结构-串:朴素模式匹配算法(暴力子字符串查找算法)

    本文链接:https://www.haomeiwen.com/subject/efxayktx.html