Reversing an Equation

17 Jun, 2022
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++
Java
C#
Python3
// C++ program to reverse an equation#include <bits/stdc++.h>using namespace std; // Function to reverse order of wordsstring 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 codeint main(){    string s = "a+b*c-d/e";    cout << reverseEquation(s) << endl;    return 0;}
// Java program to reverse an equationimport java.util.*; class GFG{     // Function to reverse order of wordspublic 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 codepublic static void main(String args[]){    String s = "a+b*c-d/e";         System.out.println(reverseEquation(s));}} // This code is contributed by bolliranadheer
// C# program to reverse an equationusing System;using System.Text; public class GFG{   // Function to reverse order of words  public static string reverseEquation(string s)  {         // Resultant string    string result = "", str = "";     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 = s[i] + str + result;        str = "";      }      else      {        str += s[i];      }    }    result = str + result;    return result;  }   // Driver Code  static public void Main (){     string s = "a+b*c-d/e";     Console.Write(reverseEquation(s));  }} // This code is contributed by shruti456rawal
# Python3 Program to reverse an equation# Function to reverse order of wordsdef 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 Codes = "a+b*c-d/e"print(reverseEquation(s)) # This code is contributed by simranjenny84
Output: 
e/d-c*b+a
Time Complexity: O(N)
Auxiliary Space: O(1)
This article is contributed by Raghav Sharma. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above. 
Akanksha_Rai
simranjenny84
bolliranadheer
tarakki100
shruti456rawal
Strings
Strings
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.