Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Text;
- class Program
- {
- static char[] result;
- static HashSet<string> count = new HashSet<string>();
- static int totalLength;
- static void Main()
- {
- StringBuilder letters = new StringBuilder(Console.ReadLine());
- totalLength = letters.Length;
- result = new char[totalLength];
- int loop = 0;
- Filling(letters, loop);
- Console.WriteLine(count.Count);
- }
- static void Filling(StringBuilder letters, int loop)
- {
- if (loop >= totalLength)
- {
- count.Add(String.Join("",result));
- return;
- }
- for (int i = 0; i < letters.Length; i++)
- {
- result[loop] = letters[i];
- while (loop - 1 >= 0 && result[loop] == result[loop - 1])
- {
- i++;
- if (i == letters.Length) return;
- result[loop] = letters[i];
- }
- StringBuilder lettersToGo = new StringBuilder(letters.Length);
- for (int g = 0; g < letters.Length; g++)
- {
- if (g != i) lettersToGo.Append(letters[g]);
- }
- Filling(lettersToGo, loop + 1);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement