zoukankan      html  css  js  c++  java
  • 传入一个字符串参数 获取这个字符串内所有字符的 不同排列情况

    public class FullArrange
    {
    
    public static List<string> GetArrangeResult(string str)
    {
    str = str.Trim();
    if (string.IsNullOrEmpty(str))
    {
    return new List<string>();
    }
    else if (str.Length == 1)
    {
    return new List<string> { str };
    }
    else if (str.Length == 2)
    {
    char[] ca = str.ToArray();
    return new List<string>() { ca[0].ToString() + ca[1].ToString(), ca[1].ToString() + ca[0].ToString() };
    }
    else
    {
    char[] array = str.ToCharArray();
    List<string> temp = GetArrangeString(array[0].ToString(), array[1]);
    for (int i = 2; i < array.Length; i++)
    {
    int count = temp.Count;
    for (int j = 0; j < count; j++)
    {
    temp.AddRange(GetArrangeString(temp[j], array[i]));
    temp.Remove(temp[j]);
    j--;
    count--;
    }
    }
    return temp;
    }
    }
    
    private static List<string> GetArrangeString(string parent, char child)
    {
    List<string> temp = new List<string>();
    for (int i = 0; i <= parent.Length; i++)
    {
    temp.Add(parent.Insert(i, child.ToString()));
    }
    return temp;
    }
    }
  • 相关阅读:
    ASIX配置vlan tag能被wireshark获取
    翻译-cmake教程
    Manjaro打造开发环境
    Frida入门
    安卓应用启动底层执行逻辑
    集合框架
    oracle清除日志内存
    flutter widgets目录
    给设备添加udid
    5.class
  • 原文地址:https://www.cnblogs.com/jcdd-4041/p/3250112.html
Copyright © 2011-2022 走看看