|  | 
|  | 
| back to board | (C# )Memory limit exceeded ,WHY? Posted by min_jie  16 Mar 2009 07:40First:
 using System;
 using System.Text.RegularExpressions;
 
 class Program
 {
 static void Main(string[] args)
 {
 int lenNum = int.Parse(Console.ReadLine());
 for (int i = 0; i < lenNum; i++)
 {
 if (Regex.IsMatch(Console.ReadLine(), "^(?:one|out(?:put)?|in(?:put)?|puton)+$")) Console.WriteLine("YES");
 else Console.WriteLine("NO");
 }
 }}
 
 
 Second:
 using System;
 class Program
 {
 static void Main(string[] args)
 {
 int lenNum = int.Parse(Console.ReadLine());
 for (int i = 0; i < lenNum; i++)
 {
 if (Console.ReadLine().Replace("one","").Replace("puton","").Replace("output","").Replace("input","").Replace("out","").Replace("in","")=="") Console.WriteLine("YES");
 else Console.WriteLine("NO");
 }
 }}
 
 
 THIRD:
 using System;
 class Program
 {
 static void Main(string[] args)
 {
 int lenNum = int.Parse(Console.ReadLine());
 for (int i = 0; i < lenNum; i++)
 Console.WriteLine(Judge(Console.ReadLine()));
 }
 
 
 static string Judge(string input)
 {
 int pos = 0;
 for (int i = input.Length - 1; i >= 0; i--)
 {
 pos++;
 if (pos == 1||pos==4) continue;
 else if (pos == 2)
 {
 if (input.Substring(i, pos) == "in") pos = 0;
 else continue;
 }
 else if (pos == 3)
 {
 if (input.Substring(i, pos) == "one" || input.Substring(i, pos) == "out") pos = 0;
 else continue;
 }
 else if (pos == 5)
 {
 if (input.Substring(i, pos) == "input" || input.Substring(i, pos) == "puton") pos = 0;
 else continue;
 }
 else
 {
 if (input.Substring(i, pos) == "output") pos = 0;
 else return "NO";
 }
 }
 if (pos==0) return "YES";
 else return "NO";
 }
 }
 
 All of above fail, because of "Memory limit exceeded".
 
 
 
 Edited by author 16.03.2009 07:55
Re: (C# )Memory limit exceeded ,WHY? Posted by JAVATAR  14 Jul 2012 02:23The first input size is greater than 16 mb.Re: (C# )Memory limit exceeded ,WHY? Posted by JAVATAR  14 Jul 2012 02:54use bytes instead of chars and stringsRe: (C# )Memory limit exceeded ,WHY? You got ML in the reading:Console.ReadLine()
 This line may use up to 20 MB of memory (strings are stored in Unicode).
 
 There is a solution with O(1) memory. Try to find it.
 | 
 | 
|