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#程序设计有所帮助。