当前位置: 首页 > wzjs >正文

wordpress 企业模板做seo前景怎么样

wordpress 企业模板,做seo前景怎么样,做网站需要买,网站优化解决方案题目描述 给出两个字符串 s1​ 和 s2​,若 s1​ 的区间 [l,r] 子串与 s2​ 完全相同,则称 s2​ 在 s1​ 中出现了,其出现位置为 l。 现在请你求出 s2​ 在 s1​ 中所有出现的位置。 定义一个字符串 s 的 border 为 s 的一个非 s 本身的子串…

题目描述

给出两个字符串 s1​ 和 s2​,若 s1​ 的区间 [l,r] 子串与 s2​ 完全相同,则称 s2​ 在 s1​ 中出现了,其出现位置为 l。
现在请你求出 s2​ 在 s1​ 中所有出现的位置。

定义一个字符串 s 的 border 为 s 的一个非 s 本身的子串 t,满足 t 既是 s 的前缀,又是 s 的后缀。
对于 s2​,你还需要求出对于其每个前缀 s′ 的最长 border t′ 的长度。

输入格式

第一行为一个字符串,即为 s1​。
第二行为一个字符串,即为 s2​。

输出格式

首先输出若干行,每行一个整数,按从小到大的顺序输出 s2​ 在 s1​ 中出现的位置。
最后一行输出 ∣s2​∣ 个整数,第 i 个整数表示 s2​ 的长度为 i 的前缀的最长 border 长度。

输入输出样例

输入 #1复制

ABABABC
ABA

输出 #1复制

1
3
0 0 1 

说明/提示

样例 1 解释

对于 s2​ 长度为 3 的前缀 ABA,字符串 A 既是其后缀也是其前缀,且是最长的,因此最长 border 长度为 1。

数据规模与约定

本题采用多测试点捆绑测试,共有 3 个子任务

  • Subtask 1(30 points):∣s1​∣≤15,∣s2​∣≤5。
  • Subtask 2(40 points):∣s1​∣≤104,∣s2​∣≤102。
  • Subtask 3(30 points):无特殊约定。

对于全部的测试点,保证 1≤∣s1​∣,∣s2​∣≤106,s1​,s2​ 中均只含大写英文字母。

代码实现:

#include <iostream>
#include <string>
#include <vector>

using namespace std;

// 计算前缀函数(next数组)
vector<int> compute_prefix_function(const string& pattern) {
    int m = pattern.length();
    vector<int> next(m, 0);
    int len = 0;
    int i = 1;
    
    while (i < m) {
        if (pattern[i] == pattern[len]) {
            len++;
            next[i] = len;
            i++;
        } else {
            if (len != 0) {
                len = next[len - 1];
            } else {
                next[i] = 0;
                i++;
            }
        }
    }
    return next;
}

// KMP字符串匹配算法
vector<int> kmp_search(const string& text, const string& pattern, const vector<int>& next) {
    vector<int> positions;
    int n = text.length();
    int m = pattern.length();
    int i = 0;  // 文本的索引
    int j = 0;  // 模式的索引
    
    while (i < n) {
        if (pattern[j] == text[i]) {
            j++;
            i++;
        }
        
        if (j == m) {
            positions.push_back(i - j + 1);  // 存储出现位置(1-based)
            j = next[j - 1];
        } else if (i < n && pattern[j] != text[i]) {
            if (j != 0) {
                j = next[j - 1];
            } else {
                i++;
            }
        }
    }
    return positions;
}

int main() {
    string s1, s2;
    cin >> s1 >> s2;
    
    // 计算前缀函数
    vector<int> next = compute_prefix_function(s2);
    
    // 执行KMP搜索
    vector<int> positions = kmp_search(s1, s2, next);
    
    // 输出出现位置(使用传统迭代器方式)
    for (vector<int>::iterator it = positions.begin(); it != positions.end(); ++it) {
        cout << *it << endl;
    }
    
    // 输出前缀函数结果
    for (int i = 0; i < s2.length(); i++) {
        cout << next[i] << (i == s2.length() - 1 ? "\n" : " ");
    }
    
    return 0;
}

http://www.dtcms.com/wzjs/308837.html

相关文章:

  • 深圳市宝安区西乡seo整站优化外包
  • 网站是否必须做可信网站认证网络营销推广的渠道有哪些
  • axure做网站效果图步骤搭建网站费用是多少
  • 怎样做电商网站的财务分析郑州网络推广厂家
  • wordpress优秀网站深圳关键词排名seo
  • wordpress mac维护肇庆seo排名外包
  • 做网站资源知乎网络推广方法技巧
  • 家居用品东莞网站建设有什么好的网站吗
  • 软件定制开发价格北京seo排名收费
  • wordpress大门户主题郑州seo外包收费标准
  • 电商网站域名规则网站域名解析
  • 域名对网站有什么影响吗免费网络项目资源网
  • 南充网站建设费用五八精准恶意点击软件
  • 网站建设案例模板公司网站怎么注册
  • 陕西网站建设陕icp备培训网站建设
  • 58同城深圳网站建设免费搭建网站平台
  • 已经注册了域名 怎么做网站中国软文网
  • 案例学 网页设计与网站建设cilimao磁力猫最新版地址
  • 长沙百度推广排名杭州seo网站推广
  • 做前端常用的网站及软件aso优化方案
  • 网站开发实习过程游戏如何在网上推广
  • 有什么做照片书的网站技师培训
  • 乡镇府建设网站百度导航最新版本免费下载
  • 驻马店 网站制作seo竞价推广
  • 东莞美容网站建设关键词查询优化
  • oa系统网站建设方案搜索引擎优化服务公司哪家好
  • 动态的网站怎么做足球世界排名一览表
  • wordpress模板 段子河北电子商务seo
  • 企业网站创建的步骤seo是什么意思?
  • 三亚房产做公示是什么网站兰州网络推广新手