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

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

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

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

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

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace ConsoleApplication210
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             var expression =@"
  11.            namespace ConsoleApplication210
  12.            {
  13.                class Program
  14.                {
  15.                    static void Main(string[] args)
  16.                    {
  17.                    }
  18.                }
  19.            }";
  20.  
  21.             foreach (var b in GetBrackets(expression, '{', '}'))
  22.                 Console.WriteLine(b);
  23.  
  24.             //
  25.             Console.ReadLine();
  26.         }
  27.  
  28.  
  29.         static IEnumerable<Bracket> GetBrackets(string expr, char openBracket, char closeBracket)
  30.         {
  31.             var stack = new Stack<Bracket>();
  32.             var chars = expr.ToCharArray();
  33.  
  34.             for(int i=0;i<chars.Length;i++)
  35.             {
  36.                 if (chars[i] == openBracket)
  37.                     stack.Push(new Bracket{OpenPos=i});
  38.  
  39.                 if (chars[i] == closeBracket)
  40.                 {
  41.                     var b = stack.Pop();
  42.                     b.ClosePos = i;
  43.                     yield return b;
  44.                 }
  45.             }
  46.         }
  47.     }
  48.  
  49.     class Bracket
  50.     {
  51.         public int OpenPos { get; set; }
  52.         public int ClosePos { get; set; }
  53.  
  54.         public override string ToString()
  55.         {
  56.             return string.Format("Open: {0} Close: {1}", OpenPos, ClosePos);
  57.         }
  58.     }
  59. }

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


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

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

9   голосов , оценка 4.222 из 5

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

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

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