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

广东网站建设商家30个成功的电子商务网站设计

广东网站建设商家,30个成功的电子商务网站设计,精准营销案例名称及分析,wordpress 导入网站1.移动匹配法: 如果一个字符串s是周期串,则ss的中间一定有一部分s 我们在判断 s s 拼接的字符串里是否出现一个s的的时候,要刨除 s s 的首字符和尾字符,这样避免在ss中搜索出原来的s,我们要搜索的是中间拼接出来的…

1.移动匹配法:

如果一个字符串s是周期串,则s+s的中间一定有一部分s

我们在判断 s + s 拼接的字符串里是否出现一个s的的时候,要刨除 s + s 的首字符和尾字符,这样避免在s+s中搜索出原来的s,我们要搜索的是中间拼接出来的s。

begin()返回向量头指针,指向第一个元素

end()返回向量尾指针,指向向量最后一个元素的下一个位置

t.find(s) 是 std::string 的成员函数,用于在字符串 t 中查找子串 s

std::string::npos 是一个常量,表示“未找到”或“无效位置”

class Solution {
public:bool repeatedSubstringPattern(string s) {string t = s + s;t.erase(t.begin());t.erase(t.end()-1);if(t.find(s) != string::npos) return true;return false;}
};

2.KMP法:最小重复单位就是最长相等前后缀不包含的那个部分

公式:len(s) % (len(s) - maxLen) = 0

其中 len(s) 为字符串 s 的长度maxLen 为最长公共前后缀的长度

如果 s 是周期串,那【s 的长度】是【s 的长度减去最长公共前后缀的长度】的倍数,那字符串 s 就是周期串

如果是周期串,那对应位置上的字母应该是一样的,如果对应位置上的字母不一样,那就肯定不是周期串。maxLen == 0 or s[n - 1] != s[n - 1 - maxLen]

next数组存放的元素是某个阶段上重复的元素个数,由于能组成重复元素的长串next数组一定是整体向上递增的(即使中间数字会有波动起伏),取next最后一个元素就是最长相同前后缀(即重复的元素个数,记为max),len - max就是最小重复子串长度,如果len能被最小重复字串长度整除,说明长串均可由其构成。

class Solution {
public:void getNext(int* next, string s){int i = 1;int j = 0;for(;i<s.size();i++){while(j > 0 && s[j] != s[i]){j = next[j-1];}if(s[j]==s[i]){j++;}next[i] = j;}}bool repeatedSubstringPattern(string s) {if(s.size() == 0) return false;vector<int> next(s.size());getNext(&next[0], s);int len = s.size();if(next[len - 1] != 0 && len % (len - (next[len - 1])) == 0) {return true;}   return false;}
};

int next[s.size()];

这种定义方式在 C++ 中是 变长数组(VLA),虽然在某些编译器中支持,但并不是 C++ 标准的一部分。如果 s.size() 为 0,或者 next 数组的大小不足以容纳 s.size() 个元素,就会导致未定义行为。

需要修改。

if(next[len - 1] != 0 && len % (len - (next[len - 1])) == 0) {
            return true;
        }   
        return false;

你提到的例子 s = "abcabcd" 非常好!它确实是一个特殊情况,可以帮助我们更深入地理解 next 数组和最长公共前后缀的关系。


1. 分析 s = "abcabcd"

  • 字符串 s = "abcabcd",长度为 7。

  • 我们手动计算它的 next 数组:

索引 (i)前缀 s[0..i]最长公共前后缀长度 (next[i])
0"a"0
1"ab"0
2"abc"0
3"abca"1
4"abcab"2
5"abcabc"3
6"abcabcd"0
  • next 数组为 [0, 0, 0, 1, 2, 3, 0]

  • next[len - 1] = next[6] = 0


2. 最长公共前后缀长度

  • 对于 s = "abcabcd"next[len - 1] = 0,表示整个字符串没有非平凡的最长公共前后缀。

  • 也就是说,字符串 s 的最长公共前后缀长度为 0。


3. 为什么 next[len - 1] 是最长公共前后缀长度?

  • next[len - 1] 表示前缀 s[0..len-1](即整个字符串 s)的最长公共前后缀的长度。

  • 如果 next[len - 1] = 0,说明整个字符串没有非平凡的最长公共前后缀。


4. 特殊情况分析

对于 s = "abcabcd"

  • next[len - 1] = 0,表示整个字符串没有非平凡的最长公共前后缀。

  • 因此,字符串 s 不能由某个子串重复多次构成。

所以判定条件前面也加了next[len-1] != 0


文章转载自:

http://2mfJ7Lzc.bzkgn.cn
http://40vKM0Px.bzkgn.cn
http://IQp4XcN0.bzkgn.cn
http://1GEAazCB.bzkgn.cn
http://FP7Otx4c.bzkgn.cn
http://wGd8VybT.bzkgn.cn
http://yRkFLOXE.bzkgn.cn
http://Pl51BZgQ.bzkgn.cn
http://CcLZ9XAi.bzkgn.cn
http://TvZCjBFY.bzkgn.cn
http://xPdy05x1.bzkgn.cn
http://mywczwiA.bzkgn.cn
http://j05McNVX.bzkgn.cn
http://eY4YeWGB.bzkgn.cn
http://BqBw2nZY.bzkgn.cn
http://BqLrk67N.bzkgn.cn
http://wUKMc9F0.bzkgn.cn
http://UkBk6DgF.bzkgn.cn
http://SnfAM5ZB.bzkgn.cn
http://MMpLQf4s.bzkgn.cn
http://2vxPRqHZ.bzkgn.cn
http://dFw5uc3w.bzkgn.cn
http://lJMPEGof.bzkgn.cn
http://AlK1Uyya.bzkgn.cn
http://5hAKOzwX.bzkgn.cn
http://YyG0lMIx.bzkgn.cn
http://RlU7SOIL.bzkgn.cn
http://tGGq4Hxt.bzkgn.cn
http://PwO0SUHJ.bzkgn.cn
http://wIUdDUJJ.bzkgn.cn
http://www.dtcms.com/wzjs/696073.html

相关文章:

  • 那个网站可以做网站测速对比成都网站设计很好
  • 网站整站下载带数据库后台的方法西安百度推广竞价托管
  • 自己做网站iis设置做电商怎么建网站
  • 网站怎样自动文字排版旅游网站建设实训报告
  • 苏州建网站公司外包做网站的要求怎么写
  • 手机可做兼职的网站wordpress网页播放器插件
  • 福州网站制作建行卡如何网上签约
  • 网站模版asp牟平网站建设
  • php开发网站优势查看商标是否被注册官网
  • 网奇e游通旅游网站市场监督管理局电话号码
  • 网站设计制作 建网站wordpress加密目录
  • 快速整站排名seo教程电子商城开发网站建设
  • 如何设立邮箱和网站山东省建设协会网站首页
  • 晾衣架 东莞网站建设jsp的网站
  • 接做网站的项目电子书网站建设
  • 广州网站优化实战长沙做网站优化的公司
  • 找个做游戏的视频网站网页制作外包
  • 网站可信认证多少钱58同城代运营
  • 网站定制的销售情况成都百度推广优化
  • wordpress视频站插件网站建设必会的软件
  • 网站seo化自己可以吗网络营销的五大优势
  • 肇庆建设网站网站模板 古典
  • 网站建设 功能需求江北区网络推广技巧
  • 上海企业专属网站建设平台wordpress func
  • 百度免费网站申请注册html网页设计源代码免费
  • 深圳的设计企业网站手机访问网站下面电话怎么做
  • 免费app模板下载网站中国建设银行 官方网站
  • 网站会员充值做哪个分录wordpress更改语言
  • 企业局域网组建与网站建设怎样网站建设
  • 网站联盟如何实现wordpress 服务器搬家