
字符串
文章平均质量分 61
__yuan__
简单、干净、温暖,便好。
展开
-
manacher算法求最长回文串长度
manacher算法:定义数组p[i]表示以i为中心的(包含i这个字符)回文串半径长将字符串s从前扫到后for(int i=0;i由于s是从前扫到后的,所以需要计算p[i]时一定已经计算好了p[1]....p[i-1]假设现在扫描到了i+k这个位置,现在需要计算p[i+k]定义maxlen是i+k位置前所有回文串中能延伸到的最右端的位置,即maxlen=p[i]+i;//p[i原创 2015-05-31 17:56:34 · 551 阅读 · 0 评论 -
KMP算法
有一个文本串s和一个模式串p,现在要查找p在s中的位置。KMP的算法流程: 假设现在文本串s匹配到i位置,模式串p匹配到j位置。 如果j=-1,或者当前字符匹配成功,即s[i]==p[j],都令i++,j++,继续匹配下一个字符。 如果j!=-1,且当前字符匹配失败,即s[i]!=p[j],则令i不变,j=next[j].此举意味着匹配失败是,模式串p相对于文本串原创 2015-07-14 14:48:10 · 484 阅读 · 0 评论 -
字符串的比较、复制、连接、截子串、判断子串
strcmp:当比较string型的s和char型的str[ ] 时,strcmp(str,s.c_str())==0.strcpy:char a[20]; char c[ ]="i am a teacher" 把c复制到a中:strcpy(a,c);strcat:连接两个字符串,把后面的加到前面strstr:判断后一个是不是前一个的子串。substr:原创 2015-07-14 15:09:19 · 646 阅读 · 0 评论