Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- class Program
- {
- static void Main()
- {
- Console.WriteLine(smallestSubstringContainingTheAlphabet("aaaaaabcdefghijklmnopqrstuvwxyz"));
- Console.WriteLine(smallestSubstringContainingTheAlphabet("abcdefghijklmn12345678!@#$%^&*opqrstuvwxyz!*abcdefghijklmn"));
- }
- static string smallestSubstringContainingTheAlphabet(string str)
- {
- bool aFound, bFound, cFound, dFound, eFound, fFound, gFound, hFound, iFound, jFound, kFound, lFound, mFound,
- nFound, oFound, pFound, qFound, rFound, sFound, tFound, uFound, vFound, wFound, xFound, yFound, zFound;
- aFound = bFound = cFound = dFound = eFound = fFound = gFound = hFound = iFound = jFound = kFound = lFound = mFound = nFound =
- oFound = pFound = qFound = rFound = sFound = tFound = uFound = vFound = wFound = xFound = yFound = zFound = false;
- string strLower = str.ToLower();
- string subString = "";
- int minLength = int.MaxValue;
- if (str.Length < 26)
- {
- return "";
- }
- int alphabetLetters = 26;
- for (int j = 0; j <= str.Length - alphabetLetters; j++)
- {
- aFound = bFound = cFound = dFound = eFound = fFound = gFound = hFound = iFound = jFound = kFound = lFound = mFound = nFound =
- oFound = pFound = qFound = rFound = sFound = tFound = uFound = vFound = wFound = xFound = yFound = zFound = false;
- for (int i = j; i < str.Length; i++)
- {
- switch (strLower[i])
- {
- case 'a':
- aFound = true;
- break;
- case 'b':
- bFound = true;
- break;
- case 'c':
- cFound = true;
- break;
- case 'd':
- dFound = true;
- break;
- case 'e':
- eFound = true;
- break;
- case 'f':
- fFound = true;
- break;
- case 'g':
- gFound = true;
- break;
- case 'h':
- hFound = true;
- break;
- case 'i':
- iFound = true;
- break;
- case 'j':
- jFound = true;
- break;
- case 'k':
- kFound = true;
- break;
- case 'l':
- lFound = true;
- break;
- case 'm':
- mFound = true;
- break;
- case 'n':
- nFound = true;
- break;
- case 'o':
- oFound = true;
- break;
- case 'p':
- pFound = true;
- break;
- case 'q':
- qFound = true;
- break;
- case 'r':
- rFound = true;
- break;
- case 's':
- sFound = true;
- break;
- case 't':
- tFound = true;
- break;
- case 'u':
- uFound = true;
- break;
- case 'v':
- vFound = true;
- break;
- case 'w':
- wFound = true;
- break;
- case 'x':
- xFound = true;
- break;
- case 'y':
- yFound = true;
- break;
- case 'z':
- zFound = true;
- break;
- }
- if (aFound && bFound && cFound && dFound && eFound && fFound && gFound && hFound && iFound &&
- jFound && kFound && lFound && mFound && nFound && oFound && pFound && qFound && rFound &&
- sFound && tFound && uFound && vFound && wFound && xFound && yFound && zFound)
- {
- if ((i - j + 1) < minLength)
- {
- minLength = i - j + 1;
- subString = str.Substring(j, i - j + 1);
- }
- break;
- }
- }
- }
- return subString;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement