Ejemplo n.º 1
0
        private static Lookup CalculateStatistic(string line)
        {
            var peaces = new Lookup();

            var last_symbol   = line[0];
            var current_peace = new Peace(1);

            for (var i = 1; i < line.Length; ++i)
            {
                var current_symbol = line[i];

                if (current_symbol != last_symbol)
                {
                    current_peace.End = i;
                    peaces.Add(current_peace);

                    var previousSum = current_peace.AggregatedSum;
                    var new_length  = current_peace.End - current_peace.Start;
                    current_peace = new Peace(i + 1);
                    current_peace.AggregatedSum = previousSum + new_length;
                    last_symbol = current_symbol;
                }
            }

            current_peace.End = line.Length;
            peaces.Add(current_peace);

            return(peaces);
        }
Ejemplo n.º 2
0
        public void Add(Peace item)
        {
            var node = new Node <Peace>(item);

            if (_head == null)
            {
                _head = node;
                _last = node;
            }
            else
            {
                _last.Next = node;
                _last      = node;
            }

            _count++;
        }
Ejemplo n.º 3
0
 private static bool InBound(Peace peace, int high)
 {
     return(peace.Start <= high);
 }