fork download
  1. F=\
  2. lambda s:R(f(re.findall(r'\\\W|\\[a-z]+|\S',s)))
  3. import re
  4. def R(I):
  5. r=[]
  6. for i in I:r+=[' '*(r>[]<re.findall('^[a-z]',i)and'\\'==r[-1][0])+i]
  7. return''.join(r)
  8. def f(s,p=0):
  9. v={'\\sqrt':1,'^':1,'_':1,'\\frac':2}
  10. if[]==s:return
  11. if(t:=s.pop(0))in v:k=f(s,1);yield from[t,*[next(k)for _ in range(v[t])]]
  12. if'{'==t:T=[t,*f(s),'}'];yield R([T[1:-1],T][len(T)>3and p])
  13. if'}'!=t:
  14. if~-(t in v)and'{'!=t:yield t
  15. yield from f(s,p)
  16.  
  17. print(F('\\sum_{n \\leq r^2} {\\frac{v(n)}{n}} + \\frac1n \\in \{1,2,3\}'))
  18. print(F('\\a{b c}d'))
  19. print(F('\\sqrt{b c}d'))
  20. print(F('\\sqrt{2 2}d'))
  21. print(F('\\sqrt{a}d'))
  22. print(F('\\sqrt{2}d'))
  23. print(F('\\frac{1}{2}'))
  24. print(F('\\frac{12}{3}'))
  25. print(F('\\frac{2}{n}'))
  26. print(F('\\frac{a}{n}'))
  27. print(F('\\frac{a+1}{n}'))
  28. print(F('\\frac{\\frac12}3'))
  29. print(F('\\frac{\\sqrt2}3'))
  30. print(F('\\frac {1} {23}'))
  31. print(F('\\a b'))
  32. print(F('^{a b}'))
  33. print(F('{ab}_{\\log}'))
  34. print(F('{\\sqrt{2}}^2'))
  35. print(F('\\frac{\\frac{\\frac{1}{\\sqrt{x_{1}}}+1}{\\sqrt{x_{2}+1}}+2}{\\sqrt{x_{3}+2}}+3'))
  36. print(F('\\sqrt{\{}'))
  37. print(F('\\frac{1}{\\sqrt{x_{1}}}'))
Success #stdin #stdout 0.11s 15472KB
stdin
Standard input is empty
stdout
\sum_{n\leq r^2}\frac{v(n)}n+\frac1n\in\{1,2,3\}
\a bcd
\sqrt{bc}d
\sqrt{22}d
\sqrt ad
\sqrt2d
\frac12
\frac{12}3
\frac2n
\frac an
\frac{a+1}n
\frac{\frac12}3
\frac{\sqrt2}3
\frac1{23}
\a b
^{ab}
ab_\log
\sqrt2^2
\frac{\frac{\frac1{\sqrt{x_1}}+1}{\sqrt{x_2+1}}+2}{\sqrt{x_3+2}}+3
\sqrt\{
\frac1{\sqrt{x_1}}