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

在工作之余,将写代码过程中比较常用的内容备份一次,下边代码段是关于C#查找字符串的所有排列组合的代码,应该对码农们有所用处。

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 _result = new List();

        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();
    }                
复制代码

转载于:https://juejin.im/post/5c164e9fe51d450aed55e85c

你可能感兴趣的:(C#查找字符串的所有排列组合的代码)