Listing all permutations of a string/integer

后端 未结 29 2759
没有蜡笔的小新
没有蜡笔的小新 2020-11-22 00:44

A common task in programming interviews (not from my experience of interviews though) is to take a string or an integer and list every possible permutation.

Is there

29条回答
  •  小鲜肉
    小鲜肉 (楼主)
    2020-11-22 01:19

    Here is one more implementation of the algo mentioned.

    public class Program
    {
        public static void Main(string[] args)
        {
            string str = "abcefgh";
            var astr = new Permutation().GenerateFor(str);
            Console.WriteLine(astr.Length);
            foreach(var a in astr)
            {
                Console.WriteLine(a);
            }
            //a.ForEach(Console.WriteLine);
        }
    }
    
    class Permutation
    {
        public string[] GenerateFor(string s)
        {  
    
            if(s.Length == 1)
            {
    
                return new []{s}; 
            }
    
            else if(s.Length == 2)
            {
    
                return new []{s[1].ToString()+s[0].ToString(),s[0].ToString()+s[1].ToString()};
    
            }
    
            var comb = new List();
    
            foreach(var c in s)
            {
    
                string cStr = c.ToString();
    
                var sToProcess = s.Replace(cStr,"");
                if (!string.IsNullOrEmpty(sToProcess) && sToProcess.Length>0)
                {
                    var conCatStr = GenerateFor(sToProcess);
    
    
    
                    foreach(var a in conCatStr)
                    {
                        comb.Add(c.ToString()+a);
                    }
    
    
                }
            }
            return comb.ToArray();
    
        }
    }
    

提交回复
热议问题