Позиции скобок в математическом выражении - C#

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

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

Дана строка с математическим выражением, необходимо посчитать количество строк, а также записать по парно позиции открытых и закрытых скобок Не получается именно часть связанная с позицией скобок

Решение задачи: «Позиции скобок в математическом выражении»

textual
Листинг программы
using System;
using System.Collections.Generic;
 
namespace ConsoleApplication210
{
    class Program
    {
        static void Main(string[] args)
        {
            var expression =@"
            namespace ConsoleApplication210
            {
                class Program
                {
                    static void Main(string[] args)
                    {
                    }
                }
            }";
 
            foreach (var b in GetBrackets(expression, '{', '}'))
                Console.WriteLine(b);
 
            //
            Console.ReadLine();
        }
 
 
        static IEnumerable<Bracket> GetBrackets(string expr, char openBracket, char closeBracket)
        {
            var stack = new Stack<Bracket>();
            var chars = expr.ToCharArray();
 
            for(int i=0;i<chars.Length;i++)
            {
                if (chars[i] == openBracket)
                    stack.Push(new Bracket{OpenPos=i});
 
                if (chars[i] == closeBracket)
                { 
                    var b = stack.Pop();
                    b.ClosePos = i;
                    yield return b;
                }
            }
        }
    }
 
    class Bracket
    {
        public int OpenPos { get; set; }
        public int ClosePos { get; set; }
 
        public override string ToString()
        {
            return string.Format("Open: {0} Close: {1}", OpenPos, ClosePos);
        }
    }
}

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


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

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

9   голосов , оценка 4.222 из 5
Похожие ответы