小小zot 2024-04-05 16:33 采纳率: 100%
浏览 73
已结题

数据结构——基于字符串模式匹配算法的病毒感染检测


#include <stdio.h>
#include<iostream>
#include <string.h>
#define _CRT_SECURE_NO_WARNINGS
#define N 1000010
using namespace std;
char s[N], q[N], Q[N];
int ne[N];
int m, n;
int result = 0;
void getNext(char q[]) {
    n = strlen(q);//q的实际长度多1
    for (int i = 2, j = 0; i <= n; i++) {
        while (j && q[i] != q[j + 1]) j = ne[j];
        if (q[i] == q[j + 1]) j++;
        ne[i] = j;
    }
}
void kmp_compare(char q[], char s[]) {
    m = strlen(s);
    n = strlen(q);
    for (int i = 1, j = 0; i <= m; i++) {
        while (j && s[i] != q[j + 1]) j = ne[j];
        if (s[i] == q[j + 1]) j++;
        if (j == n-1) { result = 1; return; }
    }
    result = 0;
    return;
}
int main() {
    while (1) {
        cin >> q + 1 >> s + 1;
        m = strlen(s);
        n = strlen(q);
        if (s[1] == '0' && q[1] == '0') break;
        kmp_compare(q, s);
        if (result) cout << "YES" << endl;
        else {
            for (int i = 0; i < n - 1; i++) {
                Q[1] = q[1];
                for (int i = 1; i <= n; i++) {
                    Q[i] = Q[i + 1];
                }
                Q[n - 1] = q[1];
                kmp_compare(Q, s);
                if (result) {
                    cout << "YES" << endl;
                    break;
                }
            }
            if (result == 0)  cout << "NO" << endl;
        }
    }
    return 0;
}

img


卡了一个星期了,输出结果全为NO,看不出来为什么过不了,感谢各位帮忙修改我的代码并且指出我的问题,非常感谢

  • 写回答

3条回答 默认 最新

  • 智者知已应修善业 2024-04-05 22:11
    关注

    展现GOTO妙用的荔枝,用STRING变量比较方便,实际上和使用CHAR数组道理一样的,自己对照修改。

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月14日
  • 已采纳回答 4月6日
  • 创建了问题 4月5日

悬赏问题

  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 pycharm运行main文件,显示没有conda环境
  • ¥15 易优eyoucms关于二级栏目调用的问题
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件
  • ¥15 为什么eclipse不能再下载了?
  • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
  • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
  • ¥15 特定网页无法访问,已排除网页问题