【小5聊】C#基础算法实现功能之

目录

【算法返回效果】

【基础算法实现的功能】

【基础算法分析】

【根据以上规律进行算法编码】


【算法返回效果】

【基础算法实现的功能】

实现输入一定长度的字符串后,能够返回按顺序1个字符长度、2个字符长度、3个字符长度...、n个字符长度的泛型List<string>结果集合

【基础算法分析】

比如输入的字符串:公众号【互联网功能小例子】

扫描二维码关注公众号,回复: 11895132 查看本文章
  • 目标返回的泛型List<stirng>集合

1)1位长度的字符:公、众、号、【、互、联、网、功、能、小、例、子、】

2)2位长度的字符:公众、众号、号【、【互....

3)3位长度的字符:公众号、众号【、...

...

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

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<stirng>泛型集合里,下一次再组合时,就可以进行长度位数的截取获得。

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

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

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

...

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

【根据以上规律进行算法编码】

string text="公众号【互联网功能小例子】";
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);
            }
        }
    }
}

当然,这是非常简单的逻辑,相信你们还有更加好的方法,不妨给我留言,我也学习学习。

猜你喜欢

转载自blog.csdn.net/lmy_520/article/details/108078524
今日推荐