欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#查找字符串所有排列组合的方法

程序员文章站 2022-08-03 21:19:06
本文实例讲述了c#查找字符串所有排列组合的方法。分享给大家供大家参考。具体实现方法如下: // 1. remove first char // 2. find...

本文实例讲述了c#查找字符串所有排列组合的方法。分享给大家供大家参考。具体实现方法如下:

// 1. remove first char 
// 2. find permutations of the rest of chars
// 3. attach the first char to each of those permutations.
// 3.1 for each permutation, move firstchar in all indexes 
//   to produce even more permutations.
// 4. return list of possible permutations.
public string[] findpermutations(string word)
{
 if (word.length == 2)
 {
  char[] _c = word.tochararray();
  string s = new string(new char[] { _c[1], _c[0] });
  return new string[]
  {
   word,
   s
  };
 }
 list<string> _result = new list<string>();
 string[] _subsetpermutations = findpermutations(word.substring(1));
 char _firstchar = word[0];
 foreach (string s in _subsetpermutations)
 {
  string _temp = _firstchar.tostring() + s;
  _result.add(_temp);
  char[] _chars = _temp.tochararray();
  for (int i = 0; i < _temp.length - 1; i++)
  {
   char t = _chars[i];
   _chars[i] = _chars[i + 1];
   _chars[i + 1] = t;
   string s2 = new string(_chars);
   _result.add(s2);
  }
 }
 return _result.toarray();
}

希望本文所述对大家的c#程序设计有所帮助。