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

 更新时间:2015年04月27日 11:29:30   作者:lele  
这篇文章主要介绍了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#程序设计有所帮助。

相关文章

  • 用序列化实现List<T> 实例的深复制(推荐)

    用序列化实现List<T> 实例的深复制(推荐)

    下面小编就为大家带来一篇用序列化实现List<T> 实例的深复制(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • C# 函数返回多个值的方法详情

    C# 函数返回多个值的方法详情

    这篇文章主要介绍了C#函数返回多个值的方法详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • C# 复制与删除文件的实现方法

    C# 复制与删除文件的实现方法

    这篇文章主要介绍了C# 复制与删除文件的实现方法的相关资料,希望通过本文能帮助到大家,让大家理解掌握这部分内容,需要的朋友可以参考下
    2017-10-10
  • C#发送内置图片html格式邮件的方法

    C#发送内置图片html格式邮件的方法

    这篇文章主要介绍了C#发送内置图片html格式邮件的方法,涉及C#发送邮件的技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • c# Winform同一数据源多个控件保持同步

    c# Winform同一数据源多个控件保持同步

    通过对控件属性设置数据源绑定,利用Windows数据更改通知这一特性,只要订阅(设定绑定)的控件都能接收到数据的变化通知。 通过DataBindings方法实现双向数据绑定
    2021-06-06
  • C#中倒序输出字符串的方法示例

    C#中倒序输出字符串的方法示例

    这篇文章主要给大家介绍了C#中倒序输出字符串的方法示例,本文中的字符串倒序指的是将“吗? 好 近 最”输出“最 近 好 吗?”,文中给出了两种方法,需要的朋友可以参考借鉴,下面来跟着小编一起学习学习吧。
    2017-01-01
  • Unity中 mesh生成斜坡的示例代码

    Unity中 mesh生成斜坡的示例代码

    Mesh是指模型的网格,3D模型是由多边形拼接而成,而多边形实际上是由多个三角形拼接而成的,今天通过本文给大家介绍Unity中 mesh生成斜坡功能,感兴趣的朋友一起看看吧
    2021-05-05
  • 基于静态Singleton模式的使用介绍

    基于静态Singleton模式的使用介绍

    本篇文章小编为大家介绍,基于静态Singleton模式的使用介绍。需要的朋友参考下
    2013-04-04
  • c#中将uint值转换成int的实例方法

    c#中将uint值转换成int的实例方法

    在本文里小编给大家整理的是关于c#中将uint值转换成int的实例方法,需要的朋友们学习参考下。
    2019-08-08
  • C#设计模式之简单工厂模式

    C#设计模式之简单工厂模式

    这篇文章介绍了C#设计模式之简单工厂模式,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03

最新评论