再次递归思想-路劲跨越多个阵列

种类:

1.       SHA-AA/BA/KX/WC-NYC/TYO/OSA-BA/NX/CX-NYC

2.       SHA -NYC/TYO/OSA -NYC

/之间区分的长度不一

想要的结果SHA-AA-NYC-BA-NYC

SHA-AA-NYC-NX-NYC

SHA-AA-NYC-CX-NYC

SHA-AA-NYC-CX-NYC

SHA-AA-TYO-BA-NYC

SHA-AA- TYO-NX-NYC

SHA-AA- TYO-CX-NYC

SHA-AA- TYO-CX-NYC

第一条有排列组合36种

思路

private void button1_Click(object sender, EventArgs e)
        {
            string txtOrg = textBox1.Text.Trim();

            string[] t1 = txtOrg.Split('-');
            //if ((t1.Length & 1) != 1)
            //{
            //    MessageBox.Show("录入数据有问题");
            //    return;
            //}

            StringBuilder sb = new StringBuilder("");
            GetStringRecursive(sb, "", t1.ToList());

            textBox2.Text = "广告位招租。欲去除请付我5元钱\r\n" + sb.ToString();

        }

        private string GetStringRecursive(StringBuilder preBf, string pre, List<string> listStr)
        {
            //List<string> listRet = new List<string>();
            string retStr = "";
            if(listStr.Count == 0)
                return pre + "\r\n";
            else{
                List<string> listTmp = listStr[0].Split('/').ToList();
                List<string> listTmp2 = new List<string>();
                for (int i = 1; i <= listStr.Count - 1; i++)
                    listTmp2.Add(listStr[i]);
                bool isOver = listTmp2.Count == 0;

                for (int i = 0; i <= listTmp.Count - 1; i++)
                {
                    string strTmp = listTmp[i].Trim();
                    //string[] = strTmp[i]
                    retStr = pre + strTmp;
                    //listStr.Remove()
                    if (isOver)
                    {
                        preBf.Append(retStr + "\r\n");
                    }
                    else
                    {
                        GetStringRecursive(preBf, retStr + '-', listTmp2);
                    }
                }
            }

            return retStr;
        }

版权声明:本文博主原创文章,博客,未经同意不得转载。

时间: 2024-10-14 04:28:03

再次递归思想-路劲跨越多个阵列的相关文章

递归的再度思索-多个数组路劲遍历

类型: 1.       SHA-AA/BA/KX/WC-NYC/TYO/OSA-BA/NX/CX-NYC 2.       SHA -NYC/TYO/OSA -NYC /之间区分的长度不一 想要的结果SHA-AA-NYC-BA-NYC SHA-AA-NYC-NX-NYC SHA-AA-NYC-CX-NYC SHA-AA-NYC-CX-NYC SHA-AA-TYO-BA-NYC SHA-AA- TYO-NX-NYC SHA-AA- TYO-CX-NYC SHA-AA- TYO-CX-NYC 第一

RMAN异机恢复到不同的路劲下

1.全库备份,scp到异机目录下  查询源库的DBID:   SQL> select dbid,name from v$database; DBID NAME ---------- ---------  439840715 YIJI SQL>    异机建立dump目录.oradata下建立SID名对应目录  2.恢复spfile,启动到nomount:       export ORACLE_SID=yiji    rman target /    set dbid=439840715   

递归思想之---斐波拉契数列

斐波那契数列中的递归思想 ??如果上述的分析都明白了,那就说明你已掌握了递归,但为了加深对递归的理解,我们再来看一个思考题(来自程序员的数学思考题),题目是这样的,假如动物中有一种特殊的种类,它出生2天后就开始以每天1只的速度繁殖后代.假设第1天,有1只这样的动物(该动物刚出生,从第3天开始繁殖后代).那么到第11天,共有多少只呢? 我们先来按一般顺序思考,先不要考虑第11天,先从第1天开始,看能不能找出规律: [第1天]只有1只动物 [第2天]只有1只动物,还没有繁殖后代,总量为1 [第3天]

高维空间中的体积(包含递归思想的初步理解)

n维超球体的体积的变化的特点:当n<=7的时候,体积是增大的:当n>7的时候,体积是缩小的,可以小到0 因此可以从中推出,如果以固定的半径进行取样,这取到的样本的数量是先增大,然后再缩小的. 递归思想的通俗理解:你打开面前这扇门,看到屋里面还有一扇门.你走过去,发现手中的钥匙还可以打开它,你推开门,发现里面还有一扇门,你继续打开它.若干次之后,你打开面前的门后,发现只有一间屋子,没有门了.然后,你开始原路返回,每走回一间屋子,你数一次,走到入口的时候,你可以回答出你到底用这你把钥匙打开了几扇门

classpath路劲

1.指的是tomcat下的web-if下的classes路劲 2. 发布时,红框中的文件全都会放到classes下,并且如果出现重名,下面的有可能会覆盖上面的文件

算法之递归思想

树的遍历的实现就是典型的递归思想. /* * description:树的遍历示例,递归 * 访问顺序: * 前序: 当前节点 - 左子树 - 右子树 * 中序: 左子树 - 当前节点 - 右子树 * 后序: 左子树 - 右子树 - 当前节点 * * writeby: nick * date: 2012-10-22 23:56 */ #include <iostream> using namespace std; struct node { int item; node *l, *r; nod

关于回调和递归思想的理解

1) 面向过程的递归思想在面向对象的编程世界中的递归调用就是回调思想.它们两个的区别就是多了一个封装了方法和属性的对象.回调函数实参传递的是一个函数的指针,其实递归调用也是用函数的相同地址进行递归循环处理数据的.递归函数的原理就是函数的参数值不断地变化,从而不断的重新回到函数的起始地址处根据传递的参数值不断地处理数据.回调函数的原理就是把函数当做一个可以传递的实参赋值给自定义的回调函数的形参,实际传递的是定义函数的地址. a) 理解回调函数最好把函数和类型对象相当,因为他们都是数据变量的集合,都

安卓读写文件和路劲注意事项

写文件: private void writeToLocal(String filesString,String content,int mode) { try { FileOutputStream fisStream=openFileOutput(filesString,mode); fisStream.write(content.getBytes()); fisStream.flush(); fisStream.close(); } catch (Exception e) { // TODO

第二篇 递归思想

今天说说递归思想,在我们编码时,有的时候递归能够让我们的算法更加通俗易懂,并且代码量也是大大的减少.比如我先前的系列中说到了 关于树的“先序,中序和后序”遍历,那么看看用递归来描叙这个问题是多少的简洁,多么的轻松. 1 #region 二叉树的先序遍历 2 /// <summary> 3 /// 二叉树的先序遍历 4 /// </summary> 5 /// <typeparam name="T"></typeparam> 6 /// &