Позиции скобок в математическом выражении - 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);
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д