首页 > 编程语言 >【小5聊】基础算法 - 实现字符串1到N位长度的组合关键词

【小5聊】基础算法 - 实现字符串1到N位长度的组合关键词

时间:2022-12-31 21:32:01浏览次数:55  
标签:组合 关键词 个数 算法 tempValue 位数 字符串 长度


在本篇文章中,我们讲一起了解下基础算法的运用
在程序开发里,算法无处不在,掌握算法才能更好的提高程序效率和质量 

【算法返回效果】 

【小5聊】基础算法 - 实现字符串1到N位长度的组合关键词_泛型

【实现的功能描述】

当前算法主要实现输入一定长度的字符串后,能够返回按顺序1个字符长度、2个字符长度、3个字符长度...、n个字符长度的泛型List结果集合

【基础算法分析】

...

从上面分析可以知道,不同位数组合个数,当

1)1位长度的个数=字符串长度的个数

2)2位长度的个数=字符串长度个数减去-1

3)3位长度的个数=字符串长度个数减去-2

...

n)n位长度的个数=字符串长度个数减去-(n-1)

由上面规律就可以进行长度位数的循环

获取组合字符串

1)2位组合:第1、2位作为一个组合,第2、3位又是新的组合,第3、4位组合...

2)3位组合:第1、2、3位作为一个组合,第2、3、4位又是新的组合,第3、4、5位组合...

以此类推,就可以得到以下简单算法,每次循环长度位数时,再通过循环长度每个字符,通过位数进行组合成新的字符串,当此一次满足位数时,赋值到List泛型集合里,下一次再组合时,就可以进行长度位数的截取获得。

1)第一次循环字符串获得的值:C

2)第一次循环字符串获得的值:CS,这个时候满足了位数循环i=2时,添加到List泛型集合里

3)第一次循环字符串获得的值:CSD,这个时候满足了位数循环i=2且长度大于位数2,则截取后两位数添加到List泛型集合里

...

一次类推即可得到全部组合

string text = "CSDN博客-专业IT技术发表平台";
if (true)
{
List<string> tempList = new List<string>();

//长度的组合词
for (int i = 1; i <= text.Length; i++)
{
string tempValue = "";
foreach (char item in text)
{
tempValue += item.ToString();

if (tempValue.Length >= i)
{
if (tempValue.Length > i)
{
tempValue = tempValue.Substring(1, i);
}

tempList.Add(tempValue);
}
}
}
}

标签:组合,关键词,个数,算法,tempValue,位数,字符串,长度
From: https://blog.51cto.com/u_15288318/5982299

相关文章

  • 递归介绍和利用递归算法求阶乘
    题目  题目:利用递归方法求5的阶乘。  温馨提示:n=5很容易求解,如果n=20呢?20!已经远远走出抄4字节整型范围,所以需要用8字节整型或双精度浮点型来完成算法。算法分析 ......
  • JAVA经典算法分析
      算法分析是对一个算法需要多少计算时间和存储空间作定量的分析。算法(Algorithm)是解题的步骤,可以把算法定义成解一确定类问题的任意一种特殊的方法。在计算机科学中,算......
  • 雪花算法
    雪花算法packagesnowflakeimport( "time" sf"github.com/bwmarrin/snowflake")varnode*sf.NodefuncInit(startTimestring,machineIDint64)(errerror......
  • 代码随想录算法训练营第四天
    今日刷题4道:24.两两交换链表中的节点19.删除链表的倒数第N个节点面试题02.07.链表相交142.环形链表II。● 24.两两交换链表中的节点题目链接/文章讲解/视频......
  • 【BP回归预测】基于遗传算法优化BP神经网络GA-BP实现光伏出力预测附matlab代码
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • 类欧几里得算法学习笔记
    题目求\(f(a,b,c,n)=\sum\limits_{i=0}^n\lfloor\frac{ai+b}c\rfloor\)题解当\(a\gec\)或\(b\gec\)时,\(\begin{aligned}\sum\limits_{i=0}^n\lfloor\frac{ai+b......
  • 做算法的这一年——2022年个人年终总结
    做算法的这一年——2022年个人年终总结前言​ 按照往年的惯例和园子的规矩,随着网易云音乐以及众多App的个人使用报告陆续出来,也到了自己该做个全年复盘总结的时候了。这......
  • 第九章《字符串》第4节:StringBuffer和StringBuilder
    ​前面几个小节主要讲解了String类的特点以及使用方法。实际上,Java语言中并不只有String类能表示字符串,StringBuffer和StringBuilder也可以表示字符串,它们共同构成了字符串......
  • python字符串练习
    a,b=5,10print('{0}*{1}={2}'.format(a,b,a*b))#5*10=50aa,bb=5,20print(f'{aa}*{bb}={aa*bb}')#5*20=100#Python列表```list=[1,3,5,7,1......
  • 第九章《字符串》第5节:字符编码常识
    ​专业上,把有公认意义的符号称之为“字符”,而一组字符形成的集合被称为“字符集”。字符集当中的每一个字符都有唯一的序号,这个序号是一个整数,用来和其他字符进行区别。内存......