数据结构中计算字符串字串个数

子串是一个字符串中连续的一段,可以把它抽象为在字符串中插入两条边界线截取子串,如"abcde"->"a|bc|de"

两个**“|”**截取一个子串

  • 第一步:选第一个**“|”**,共有 n+1 个选项
  • 第二步:选取第二个**“|”**,共有 n个选项

因此共有 n(n+1)* 个字符串,但是

因为第二步的“|”也可以当第一步的“|”,而字符串没有变过,所以有 *n(n+1)/2+1个字符串(1为空串)

原文链接:https://blog.csdn.net/dpj514/article/details/79048526

原文地址:https://www.cnblogs.com/fanlifeli31/p/11624268.html

时间: 2024-11-05 22:34:04

数据结构中计算字符串字串个数的相关文章

数据结构17:数据结构中的字符串

字符串(数据结构中的串) 变态的停车场管理系统字符串的存储结构 本章介绍了字符串的三种存储结构,同时介绍了有关进行串的模式匹配的两种算法——普通模式匹配算法以及快速模式匹配算法. 建议读者在掌握普通模式匹配算法的基础上学习快速模式匹配算法,这样会理解地更深刻. 本章内容: 1. 数据结构中的字符串 2. BF算法(普通模式匹配算法)及C语言实现 3. KMP算法(快速模式匹配算法)详解以及C语言实现 4. 数据结构实践项目之字符过滤系统 原文地址:https://www.cnblogs.com/

【后缀数组】不相同的字串个数

spoj改版后好囧…… 不相同的子串的个数(spoj694,spoj705)给定一个字符串,求不相同的子串的个数.算法分析:每个子串一定是某个后缀的前缀,那么原问题等价于求所有后缀之间的不相同的前缀的个数.如果所有的后缀按照 suffix(sa[1]), suffix(sa[2]),suffix(sa[3]), …… ,suffix(sa[n])的顺序计算,不难发现,对于每一次新加进来的后缀 suffix(sa[k]),它将产生 n-sa[k]+1 个新的前缀.但是其中有height[k]个是和

C语言:自定义一个查找字串的功能函数,类似于<string.h>中的strstr()

//自定义一个字符串字串查找标准库函数strstr() #include<stdio.h> #include<string.h> char* myStrstr(char *str1,char *str2); int main() { char *str1 = "hello worl world ld"; char *str2 = " world "; puts(myStrstr(str1,str2)); return 0; } char *m

公共字串计算——String.regionMatches方法 &amp; Java标签

题目:输入两个字符串,计算两个字符串的最大公共字串的长度,并输出,字符不区分大小写 eg:输入abcde  xxxBcyyy,输出 2. 完整Java代码: import java.util.*; public class Main { public static void main(String arg[]){ Scanner s=new Scanner(System.in); String str1=s.next(); String str2=s.next(); s.close(); Str

华为OJ: 公共字串计算

有几个需要注意的地方,一个这道题是不区分大小写的,所以在计算之前对输入的字符串要做小写或者大写的转换. 第二个,思路一定要清晰,先将s1从[i]处开始与s2的[j]开始匹配,不相等则j++直到j等于s2.length()-1,相等,则i++,j++.注意,这里就是i++,即下次重新开始从s[i]开始匹配时,两次i之间的距离可能会超过1.再j那里设置一个计数器计数即可. import java.util.Scanner; public class findMaxSubStringLength {

字符串中最长的不重合字串长度

例子 "abmadsefadd"  最长长度为5 "avoaid"           最长长度为3 思路 空间换时间hashTable,标准下其实位置beg.初始化全局最大值0.开辟字符数组,起初标为0. 访问数组时 如果该字符在hashTable对应的哈希值为1,则计算当前位置到beg的距离,并且把beg赋值为当前位置.如果大于全局最大值,则替换全局最大值 如果该字符在hashTable对应的哈希值为0,则置1 参考代码 #include <iostrea

华为机试-公共字串计算

题目描述题目标题:计算两个字符串的最大公共字串的长度,字符不区分大小写详细描述:接口说明原型:int getCommonStrLength(char * pFirstStr, char * pSecondStr);输入参数: char * pFirstStr //第一个字符串 char * pSecondStr//第二个字符串 输入描述:输入两个字符串 输出描述:输出一个整数 输入例子:asdfas werasdfaswer 输出例子:6 效率低的Java程序实现: import java.ut

华为OJ——公共字串计算

题目描述 题目标题: 计算两个字符串的最大公共字串的长度,字符不区分大小写 详细描述: 接口说明 原型: int getCommonStrLength(char * pFirstStr, char * pSecondStr); 输入参数: char * pFirstStr //第一个字符串 char * pSecondStr//第二个字符串 输入描述: 输入两个字符串 输出描述: 输出一个整数 输入例子: asdfas werasdfaswer 输出例子: 6 import java.util.

字串符相关 split() 字串符分隔 substring() 提取字符串 substr()提取指定数目的字符

split() 方法将字符串分割为字符串数组,并返回此数组. stringObject.split(separator,limit) 我们将按照不同的方式来分割字符串: 使用指定符号分割字符串,代码如下: var mystr = "www.imooc.com"; document.write(mystr.split(".")+"<br>"); document.write(mystr.split(".", 2)+&