| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
bdnp
10年前发布

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

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();          }