Reversing an Equation
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.
// CPP program to reverse an equation #include <bits/stdc++.h> 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; } |
chevron_right
filter_none
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.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
Recommended Posts:
- Find the missing value from the given equation a + b = c
- Validation of Equation Given as String
- Check if string can be made lexicographically smaller by reversing any substring
- Longest subsequence having difference atmost K
- Reduce the number to minimum multiple of 4 after removing the digits
- Check whether the given string is Palindrome using Stack
- Generate Binary Strings of length N using Branch and Bound
- Check if two strings can be made equal by swapping one character among each other
- Minimum operations required to make the string satisfy the given condition
- Find the most valued alphabet in the String
- Find the last two missing digits of the given phone number
- Split the binary string into substrings with equal number of 0s and 1s
- Check whether all the substrings have number of vowels atleast as that of consonants
- Find the Mid-Alphabet for each index of the given Pair of Strings
Improved By : Akanksha_Rai