当前位置: 首页 > 编程笔记 >

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

闾丘谦
2023-03-14
本文向大家介绍C#查找字符串所有排列组合的方法,包括了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();
}

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

 类似资料:
  • 问题内容: 在java中查找字符串的所有排列 问题答案: 在这篇文章中,我们将看到如何在 java 中找到 String 的所有排列。 我们将使用一种非常简单的方法来做到这一点。 取出String的第一个字符,递归地插入剩余String的排列的不同位置。 假设您将 String 作为ABC。 所以我们从 ABC 中取出 A 第一个字符 =A 和 RemainingString = BC 因为我们在

  • 本文向大家介绍Java排列组合字符串的方法,包括了Java排列组合字符串的方法的使用技巧和注意事项,需要的朋友参考一下 例如 输入“abc”,打印所有可能出现的组合情况,并且消除重复值。 所谓排列组合如下: 排列组合,字符串:abc bca acb abc cba bac cab 排列组合个数:6 实现代码(结合Java8 lambda表达式实现) 如有更简洁的代码实现,请不要吝啬,贴出来分享下。

  • 问题内容: 我认为我有一个复杂的要求。 它是使用Oracle 10.2的组合排列,我能够使用笛卡尔联接来解决它,但是我认为它需要一些改进以使其更简单,更灵活。 主要行为。 输入字符串 :“一二” 输出 :’一’‘二’‘一二’‘二一’ 对于我的解决方案,我将字符串数限制为5(请注意,输出是阶乘附近的数字) SQL: 问题答案: 编辑:得到了通用的。最终真的很简单(但是花了我一段时间才到达那里) Ed

  • 本文向大家介绍在C ++中查找所有好的字符串,包括了在C ++中查找所有好的字符串的使用技巧和注意事项,需要的朋友参考一下 假设我们有两个字符串s1和s2。这些字符串的大小为n,我们还有另一个字符串称为evil。我们必须找到好字符串的数量。 如果字符串的大小为n,则按字母顺序大于或等于s1,按字母顺序小于或等于s2,并且作为子字符串不包含邪恶,则该字符串称为良。答案可能非常大,因此请以10 ^ 9

  • 问题内容: 我有绳子。我想通过更改字符串中的字符顺序来从该字符串生成所有排列。例如,说: 我想要的是这样的清单, 目前,我正在迭代字符串的列表强制转换,随机选择2个字母并将它们换位以形成新的字符串,然后将其添加到设置的l强制转换中。根据字符串的长度,我正在计算可能的排列数量,并继续迭代直到集合大小达到极限。必须有更好的方法来做到这一点。 问题答案: itertools模块具有一个有用的方法,称为p

  • 我正在玩排序数组,我弄清楚了如何对int数组进行合并排序。但是我不知道合并字符串数组。在正常排序时,对字符串数组进行排序很容易,但合并排序不同。我到目前为止所做的代码如下,正在处理int数组。