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

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

作者: 天降小纸箱 | 来源:发表于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