Как увеличить скорость работы программы? - C#

Узнай цену своей работы

Формулировка задачи:

Всем привет! Программа проходит 6/8 тестов (тесты неизвестны), а на последние 2 превышен лимит времени. Прошу помощи. Задача: Шантажист пытается составить сообщение, вырезая буквы из газетной статьи. Ему не нужны пробелы и знаки препинания, не важен регистр букв, то есть он может использовать прописные буквы вместо строчных и наоборот. Ввод содержит в первой строке текст газетной статьи длиной до 100000 символов, состоящий из латинских букв, цифр, пробелов и знаков препинания. Во второй строке содержится сообщение шантажиста длиной до 100000 символов, состоящее только из латинских букв и пробелов. Вывести YES, если сообщение можно составить, и NO если нельзя. Пример ввода: Blame cosmic rays not CO2 for warming up the planet. bring the ransom Вывод для примера: YES
Листинг программы
  1. using System;
  2. namespace F2
  3. {
  4. class Program
  5. {
  6. static string RemoveSpaces(string InString)
  7. {
  8. InString = InString.Replace(" ", string.Empty);
  9. InString = InString.Trim().Replace(" ", string.Empty);
  10. return InString;
  11. }
  12. static void Main(string[] args)
  13. {
  14. string Text = Console.ReadLine().ToUpper();
  15. string Message = Console.ReadLine().ToUpper();
  16. Message = RemoveSpaces(Message);
  17. int check = 0;
  18. for (int i = 0; i < Message.Length; i++)
  19. {
  20. for (int j = 0; j < Text.Length; j++)
  21. {
  22. if (Convert.ToString(Message[i]) == Convert.ToString(Text[j]))
  23. {
  24. check++;
  25. Text = Text.Remove(j, 1);
  26. goto Q;
  27. }
  28. }
  29. Q:;
  30. }
  31. if (check == Message.Length) Console.WriteLine("YES");
  32. else Console.WriteLine("NO");
  33. Console.ReadKey();
  34. }
  35. }
  36. }

Решение задачи: «Как увеличить скорость работы программы?»

textual
Листинг программы
  1. using System;
  2.  
  3. namespace Blackmailer
  4. {
  5.     class Program
  6.     {
  7.         private static void Main(string[] args)
  8.         {
  9.             string text = "Blame cosmic rays not CO2 for warming up the planet.";
  10.             string message = "bring the ransom";
  11.  
  12.             //string text = "Abc";
  13.             //string message = "abc";
  14.  
  15.             char[] alphabet =
  16.             {
  17.                 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'
  18.             };
  19.  
  20.  
  21.             int[] messageСounts = new int[26];
  22.             int[] textСounts = new int[26];
  23.  
  24.             for (int i = 0; i < message.Length; i++)
  25.             {
  26.                 for (int j = 0; j < alphabet.Length; j++)
  27.                 {
  28.                     if (char.ToLower(message[i]) == alphabet[j])
  29.                     {
  30.                         messageСounts[j]++;
  31.                         break;
  32.                     }
  33.                 }
  34.             }
  35.  
  36.             for (int i = 0; i < text.Length; i++)
  37.             {
  38.                 for (int j = 0; j < alphabet.Length; j++)
  39.                 {
  40.                     if (char.ToLower(text[i]) == alphabet[j])
  41.                     {
  42.                         textСounts[j]++;
  43.                         break;
  44.                     }
  45.                 }
  46.             }
  47.  
  48.             bool check = true;
  49.             for (int i = 0; i < textСounts.Length; i++)
  50.             {
  51.                 if (messageСounts[i] > textСounts[i])
  52.                 {
  53.                     check = false;
  54.                     break;
  55.                 }
  56.             }
  57.  
  58.             if (check)
  59.                 Console.WriteLine("YES");
  60.             else
  61.                 Console.WriteLine("NO");
  62.  
  63.             Console.ReadKey();
  64.         }
  65.     }
  66. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.071 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы