Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2015
307
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.82 KB | None | 0 0
  1. using System;
  2.  
  3. class Program
  4. {
  5.     static void Main()
  6.     {
  7.         Console.WriteLine(smallestSubstringContainingTheAlphabet("aaaaaabcdefghijklmnopqrstuvwxyz"));
  8.         Console.WriteLine(smallestSubstringContainingTheAlphabet("abcdefghijklmn12345678!@#$%^&*opqrstuvwxyz!*abcdefghijklmn"));
  9.     }
  10.  
  11.     static string smallestSubstringContainingTheAlphabet(string str)
  12.     {
  13.         bool aFound, bFound, cFound, dFound, eFound, fFound, gFound, hFound, iFound, jFound, kFound, lFound, mFound,
  14.              nFound, oFound, pFound, qFound, rFound, sFound, tFound, uFound, vFound, wFound, xFound, yFound, zFound;
  15.         aFound = bFound = cFound = dFound = eFound = fFound = gFound = hFound = iFound = jFound = kFound = lFound = mFound = nFound =
  16.                  oFound = pFound = qFound = rFound = sFound = tFound = uFound = vFound = wFound = xFound = yFound = zFound = false;
  17.         string strLower = str.ToLower();
  18.         string subString = "";
  19.         int minLength = int.MaxValue;
  20.         if (str.Length < 26)
  21.         {
  22.             return "";
  23.         }
  24.         int alphabetLetters = 26;
  25.         for (int j = 0; j <= str.Length - alphabetLetters; j++)
  26.         {
  27.             aFound = bFound = cFound = dFound = eFound = fFound = gFound = hFound = iFound = jFound = kFound = lFound = mFound = nFound =
  28.                  oFound = pFound = qFound = rFound = sFound = tFound = uFound = vFound = wFound = xFound = yFound = zFound = false;
  29.             for (int i = j; i < str.Length; i++)
  30.             {
  31.                 switch (strLower[i])
  32.                 {
  33.                     case 'a':
  34.                         aFound = true;
  35.                         break;
  36.                     case 'b':
  37.                         bFound = true;
  38.                         break;
  39.                     case 'c':
  40.                         cFound = true;
  41.                         break;
  42.                     case 'd':
  43.                         dFound = true;
  44.                         break;
  45.                     case 'e':
  46.                         eFound = true;
  47.                         break;
  48.                     case 'f':
  49.                         fFound = true;
  50.                         break;
  51.                     case 'g':
  52.                         gFound = true;
  53.                         break;
  54.                     case 'h':
  55.                         hFound = true;
  56.                         break;
  57.                     case 'i':
  58.                         iFound = true;
  59.                         break;
  60.                     case 'j':
  61.                         jFound = true;
  62.                         break;
  63.                     case 'k':
  64.                         kFound = true;
  65.                         break;
  66.                     case 'l':
  67.                         lFound = true;
  68.                         break;
  69.                     case 'm':
  70.                         mFound = true;
  71.                         break;
  72.                     case 'n':
  73.                         nFound = true;
  74.                         break;
  75.                     case 'o':
  76.                         oFound = true;
  77.                         break;
  78.                     case 'p':
  79.                         pFound = true;
  80.                         break;
  81.                     case 'q':
  82.                         qFound = true;
  83.                         break;
  84.                     case 'r':
  85.                         rFound = true;
  86.                         break;
  87.                     case 's':
  88.                         sFound = true;
  89.                         break;
  90.                     case 't':
  91.                         tFound = true;
  92.                         break;
  93.                     case 'u':
  94.                         uFound = true;
  95.                         break;
  96.                     case 'v':
  97.                         vFound = true;
  98.                         break;
  99.                     case 'w':
  100.                         wFound = true;
  101.                         break;
  102.                     case 'x':
  103.                         xFound = true;
  104.                         break;
  105.                     case 'y':
  106.                         yFound = true;
  107.                         break;
  108.                     case 'z':
  109.                         zFound = true;
  110.                         break;
  111.                 }
  112.                 if (aFound && bFound && cFound && dFound && eFound && fFound && gFound && hFound && iFound &&
  113.                     jFound && kFound && lFound && mFound && nFound && oFound && pFound && qFound && rFound &&
  114.                     sFound && tFound && uFound && vFound && wFound && xFound && yFound && zFound)
  115.                 {
  116.                     if ((i - j + 1) < minLength)
  117.                     {
  118.                         minLength = i - j + 1;
  119.                         subString = str.Substring(j, i - j + 1);
  120.                     }
  121.                     break;
  122.                 }
  123.             }
  124.         }
  125.         return subString;
  126.     }
  127. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement