首页 > 代码库 > c# 排列组合算法
c# 排列组合算法
//排列组合 public class FullArrange { /// <summary> /// 排列组合 /// </summary> /// <param name="str">字符串</param> /// <param name="splitStr">分割的符号,比如";"</param> /// <returns></returns> public static List<string> GetArrangeResult(string str,string splitStr) { str = str.Trim(); if (string.IsNullOrEmpty(str)) { return new List<string>(); } else if (str.Length == 1) { return new List<string>{ str}; } else if (str.Length == 2) { string[] ca = str.Split(new char[] {Convert.ToChar(splitStr)}); return new List<string>() { ca[0].ToString() + splitStr + ca[1].ToString(), ca[1].ToString() + splitStr + ca[0].ToString() }; } else { string[] array = str.Split(new char[] { Convert.ToChar(splitStr)}); List<string> Splittemp=new List<string>(); List<string> temp = GetArrangeString(array[0].ToString(), array[1].ToString()); for (int i = 2; i < array.Length; i++) { int count = temp.Count; for (int j = 0; j < count; j++) { temp.AddRange(GetArrangeString(temp[j], array[i])); temp.Remove(temp[j]); j--; count--; } } foreach (var item in temp) { var mstr=""; foreach (var s in item) { mstr += s.ToString()+ ";"; } Splittemp.Add(mstr.TrimEnd(‘;‘)); } return Splittemp; } } public static List<string> GetArrangeString(string parent, string child) { List<string> temp = new List<string>(); for (int i = 0; i <= parent.Length; i++) { temp.Add(parent.Insert(i, child.ToString())); } return temp; } }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。