using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication174
{
class Program
{
static void Main(string[] args)
{
var str = "* 1 2 ( + 3 ( * 4 5 ) )";
str = new Parser().ToInfix(str);
Console.WriteLine(str);
Console.ReadLine();
}
}
class Parser
{
public string ToInfix(string str)
{
var parts = str.Split(' ');
var stack = new Stack<string>();
var first = true;
var result = new StringBuilder();
foreach(var s in parts)
{
switch(s)
{
case "+":
case "*": stack.Push(s); break;
case ")": stack.Pop(); result.Append(s); break;
case "(":
if (!first) result.Append(stack.Peek());
result.Append(s);
first = true;
break;
default:
if (!first) result.Append(stack.Peek());
result.Append(s);
first = false;
break;
}
}
return result.ToString();
}
}
}