Related Articles
Reversing an Equation
• Difficulty Level : Basic
• Last Updated : 04 Jan, 2021

Given a mathematical equation using numbers/variables and +, -, *, /. Print the equation in reverse.

Examples:

```Input : 20 - 3 + 5 * 2
Output : 2 * 5 + 3 - 20

Input : 25 + 3 - 2 * 11
Output : 11 * 2 - 3 + 25

Input : a + b * c - d / e
Output : e / d - c * b + a```

Approach : The approach to this problem is simple. We iterate the string from left to right and as soon we strike a symbol we insert the number and the symbol in the beginning of the resultant string.

## C++

 `// C++ program to reverse an equation``#include ``using` `namespace` `std;` `// Function to reverse order of words``string reverseEquation(string s)``{``    ``// Resultant string``    ``string result;``    ``int` `j = 0;``    ``for` `(``int` `i = 0; i < s.length(); i++) {``        ` `        ``// A space marks the end of the word``        ``if` `(s[i] == ``'+'` `|| s[i] == ``'-'` `||``            ``s[i] == ``'/'` `|| s[i] == ``'*'``) {``            ` `            ``// insert the word at the beginning``            ``// of the result string``            ``result.insert(result.begin(),``                ``s.begin() + j, s.begin() + i);``            ``j = i + 1;``            ` `            ``// insert the symbol``            ``result.insert(result.begin(), s[i]);``        ``}``    ``}``    ` `    ``// insert the last word in the string``    ``// to the result string``    ``result.insert(result.begin(), s.begin() + j,``                                     ``s.end());``    ``return` `result;``}` `// driver code``int` `main()``{``    ``string s = ``"a+b*c-d/e"``;``    ``cout << reverseEquation(s) << endl;``    ``return` `0;``}`

## Java

 `// Java program to reverse an equation``import` `java.util.*;` `class` `GFG{``    ` `// Function to reverse order of words``public` `static` `String reverseEquation(String s)``{``    ` `    ``// Resultant string``    ``String result = ``""``, str = ``""``;``    ``int` `j = ``0``;``    ` `    ``for``(``int` `i = ``0``; i < s.length(); i++)``    ``{``        ` `        ``// A space marks the end of the word``        ``if` `(s.charAt(i) == ``'+'` `||``            ``s.charAt(i) == ``'-'` `||``            ``s.charAt(i) == ``'/'` `||``            ``s.charAt(i) == ``'*'``)``        ``{``            ` `            ``// Insert the word at the beginning``            ``// of the result string``            ``result = s.charAt(i) + str + result;``            ``str = ``""``;``        ``}``        ``else``        ``{``            ``str += s.charAt(i);``        ``}``    ``}``    ``result = str + result;``    ``return` `result;``}` `// Driver code``public` `static` `void` `main(String args[])``{``    ``String s = ``"a+b*c-d/e"``;``    ` `    ``System.out.println(reverseEquation(s));``}``}` `// This code is contributed by bolliranadheer`

## Python3

 `# Python3 Program to reverse an equation``# Function to reverse order of words``def` `reverseEquation(s):``    ` `    ``# Reverse String``    ``result``=``""``    ``for` `i ``in` `range``(``len``(s)):``        ` `        ``# A space marks the end of the word``        ``if``(s[i]``=``=``'+'` `or` `s[i]``=``=``'-'` `or` `s[i]``=``=``'/'` `or` `s[i]``=``=``'*'``):``            ` `            ``# insert the word at the beginning``            ``# of the result String``            ``result ``=` `s[i] ``+` `result``        ` `        ``# insert the symbol``        ``else``:``            ``result ``=` `s[i] ``+` `result``    ``return` `result` `# Driver Code``s ``=` `"a+b*c-d/e"``print``(reverseEquation(s))` `# This code is contributed by simranjenny84`

Output:

`e/d-c*b+a`

This article is contributed by Raghav Sharma. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.