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

news2025/1/16 6:59:26

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

【算法返回效果】 

【实现的功能描述】

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

【基础算法分析】

比如输入的字符串:CSDN博客-专业IT技术发表平台

目标返回的泛型List集合 1)1位长度的字符:C、S、D 、N、博 、客、-、专、业、I、T、技、术、平、台

2)2位长度的字符:CS、SD、DN 、N博客、博客、....

3)3位长度的字符:CSD 、SDN、...

...

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

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);
            }
        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/117399.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第二证券|七位投资专家指点2023 战略性看好A股 市场将提供更多机会

2022年行将收官&#xff0c;2023年新征途行将开启。 阅历了本年的一波三折、震动大跌&#xff0c;2023年A股商场将怎么演绎&#xff1f;有哪些时机值得注重&#xff1f;哪些危险要素需求留意&#xff1f; 对此&#xff0c;我国基金报记者专访了来自公募、券商资管、私募的七位…

Vjudge如何绑定洛谷账号

因为洛谷不支持Vjudge的bot提交&#xff0c;一个学弟问我才发现。要绑定洛谷账号才能在vj本地提交&#xff0c;绑定的方法也很奇怪&#xff0c;方法如下。 在题目来自洛谷的题目界面点击提交&#xff0c;出现如下界面。 发现没有bot提交选项&#xff0c;只能选择My Account,点…

NetInside网络攻击分析帮您轻松发现网络异常

分析概述 分析概述从以下四点做介绍。 故障信息来源 根据网络管理老师提供信息&#xff0c;29日上午7点半到9点时分&#xff0c;网络出现过故障。 分析对象 使用NetInside全流量分析系统对改故障进行分析。 分析思路 1、对比分析故障时段与非故障时段总流量信息。 2、对…

硬盘数据恢复的方法有哪些?这五种恢复方法你知道吗

硬盘通常泛指电脑硬盘&#xff0c;也可以将其定义为电脑数据的“载体”。硬盘的主要作用是存储数据&#xff0c;它具有读写速度快、耗能低、体积小等优势&#xff0c;但是在使用过程中&#xff0c;总会遇到硬盘数据丢失问题&#xff0c;比如受病毒感染、误格式化、误删除、操作…

C++中的多态(概念篇)

多态的概念 通俗来说&#xff0c;就是多种形态&#xff0c;具体点就是去完成某一个行为&#xff0c;不同的对象去完成时会产生出不同的状态。比如最常见的买票&#xff0c;学生为半价&#xff0c;成人为全票。 多态的分类 静态的多态&#xff1a;如函数重载&#xff0c;看起…

【Linux入门指北】 网站服务

网站服务 文章目录网站服务一、简介二、静态站点三、动态站点1.LAMP2.部署论坛系统discuz3.部署博客系统 wordpress4.部署网上商城 ecshop5.部署网校系统edusoho一、简介 1.前言 UI的转变&#xff1a;B/S架构 2.名词 HTML&#xff08; HyperText Markup Language&#xff09;…

Arduino 简易屏显电子温度计

Arduino 简易屏显电子温度计一、前言二、硬件要求三、参数基础四、原理剖析五、实验思路六、程序概要七、arduino使用接线八、成果展示九、总结一、前言 温度计的使用&#xff0c;在日常生活中随处可见&#xff0c;电子行业也有相应的温控传感器设备&#xff0c;不管的是电子芯…

单片机实训day6——Proteus8.6版本+ STM32F103驱动LCD12864显示Keil5程序设计

内 容&#xff1a;实现LCD显示 学 时&#xff1a;4学时 知识点&#xff1a;LCD12864芯片介绍&#xff0c;读写操作时序&#xff0c;电路设计 重点&#xff1a; 读写操作时序 难点&#xff1a;读写操作时序 时间&#xff1a;2022年12月26日 9:00&#xff5e;11:50 总结&…

抖音小程序实践一:申请初始化

一、官方文档与实践 抖音小程序是什么&#xff1f;从官方视频了解 从2022年开始&#xff0c;字节跳动就开始火力全开的与知名企业合作&#xff0c;推动抖音小程序的孵化&#xff0c;然后逐步开放普通企业争相进入抖音小程序领域&#xff0c;来分一分流量的红利。 巨量星图抖…

微信小程序----使用发布订阅模式

目录 前言 小程序使用PubSubJS 获取 PubSubJS npm 构建 使用pubsub-js 1、使用publish发布消息 2、使用subscribe函数订阅消息 前言 发布-订阅模式 又叫 观察者模式。 它定义对象间的一种一对多的依赖关系&#xff0c;当一个对象的状态发生改变时&#xff0c;所有依赖于…

excel图表设计:如何让数据变化更加可视化

挖掘数据背后的意义&#xff0c;不能只是单纯的将原始数据&#xff0c;从数字变成图表&#xff1b;而是要让数据变化具现出来&#xff0c;能直观看到其变化形态。 在我们的实际工作中&#xff0c;通常会看到很多类似下面这种架构的数据。 【正文】 因为这样的数据是非常常见的…

HTTP协议及Servlet详解

目录 HTTP协议 1、HTTP协议简介 2、HTTP协议特点 3、HTTP协议通信流程&#xff08;工作原理&#xff09; 4、HTTP报文格式 4.1、HTTP请求报文 4.2、HTTP响应报文 4.3、HTTP状态消息 Servlet详解 1、Servlet核心接口和类 1.1、Servlet接口 1.2、GenericServlet抽象类 …

分层自动化测试模型深入研究

分层自动化测试模型的发展 分层自动化测试模型最早是由Mike Cohn在2009年出版的《Succeeding with Agile》书中的第十六章进行阐述的,他说“测试金字塔是分层测试的一种最佳实践“。金字塔自动化测试模型如上图A所示,从下往上分为单元测试、接口测试、界面测试(其实我更习惯…

C语言 指针进阶学完指针必看练习题详解

该篇与上篇衔接 二维数组 int main() {int a[3][4] { 0 };printf("%d\n", sizeof(a));//48 3*4*sizeof(int)printf("%d\n", sizeof(a[0][0]));//4 第一行第一个元素 就是整形大小printf("%d\n", sizeof(a[0]));//16//a[0]就可以理解为 第…

Windows卸载easyconnect

Windows卸载easyconnect卸载深信服VPN客户端easyconnect解决办法卸载SangforPWEx服务手动卸载安装目录卸载深信服VPN客户端easyconnect Windows下的深信服VPN客户端easyconnect无法卸载. 解决办法 下载地址: http://download.sangfor.com.cn/download/product/sslvpn/Sangfor…

浅谈图数据库1:什么是图?

目录 一、图是什么&#xff1f; 二、“图”源自哪里&#xff1f; 三、加权图是什么&#xff1f; 四、有向图是什么&#xff1f; 五、图能给我们带来什么&#xff1f; 一、图是什么&#xff1f; 说到“图” 大部分人首先想到的是这样滴——图像 ​或者是 饼状图 折线图…

【ML实验4】多分类贝叶斯模型

实验代码获取 github repo 山东大学机器学习课程资源索引 实验目的 实验内容 数据集 构建多分类贝叶斯模型 这里的条件独立性指的是特征xjx_jxj​之间相互独立&#xff0c;这是一个十分强的假设。 证明 Problem Set 2 思路主要是证明下面引理&#xff0c;用拉格朗日乘子法&a…

CP2102国产替代DPU02— USB 转 UART 桥接芯片

DPU02是一个高度集成的USB转UART的桥接控制器&#xff0c;该产品提供了一个简单的解决方案&#xff0c;可将RS-232设计更新为USB设计&#xff0c;并简化PCB组件空间。该DPU02包括了一个USB 2.0全速功能控制器、USB收发器、振荡器、EEPROM和带有完整调制解调控制信号的异步串行数…

【聆思CSK6视觉AI开发套件试用】Win11下安装全过程处理兼容性问题以及实现亮灯AI头肩检测

本篇文章来自极术社区与聆思科技组织的CSK6 视觉AI开发套件活动&#xff0c;更多开发板试用活动请关注极术社区网站。作者&#xff1a;Wordiansom Win11上并且安装在其他盘的时候会出现的问题坑。。。。。。&#xff08;能用win10就用win10&#xff09;。 1. 晚拿到的开发板套件…

冲量在线携手中国电信研究院、北京电信和海光信息打造的数信链网的入选2022“星河”隐私计算标杆案例

为促进大数据技术产品及相关产业发展&#xff0c;加快培育数据要素市场、充分发挥数据作为生产要素的独特价值&#xff0c;树立行业标杆榜样力量&#xff0c;中国信息通信研究院、中国通信标准化协会大数据技术标准推进委员会(CCSA TC601)连续六年共同组织大数据“星河&#xf…