반복적인 재사색 - 여러 개의 수조 길의 힘이 두루 흐르다

2218 단어 .netC#
유형:
 
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
" + 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
"; 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
"); } else { GetStringRecursive(preBf, retStr + '-', listTmp2); } } } return retStr; }

좋은 웹페이지 즐겨찾기