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