Evaluate an array expression with numbers, + and –
Given an array arr[] of string type which consists of strings “+”, “-” and Numbers. Find the sum of the given array.
Examples :
Input : arr[] = {"3", "+", "4", "-", "7", "+", "13"} Output : Value = 13 The value of expression 3+4-7+13 is 13. Input : arr[] = { "2", "+", "1", "-8", "+", "13"} Output : Value = 8
Approach :
- First of all, initialize the sum i.e, sum = 0.
- Start traversing the array.
- As there is string of numbers at every even position of the array, so convert this string into integer and store in a variable value by using stoi function in C++.
- As there is operator at every odd position, check if the operator is ‘+’ or ‘-‘. If it is ‘+’, then add the value to the sum, else subtract from the sum.
- Finally, return the sum obtained.
Below is the implementation of the above approach :
C++
// C++ program to find sum of given array of // string type in integer form #include <bits/stdc++.h> using namespace std; // Function to find the sum of given array int calculateSum(string arr[], int n) { // if string is empty if (n == 0) return 0; string s = arr[0]; // stoi function to convert // string into integer int value = stoi(s); int sum = value; for ( int i = 2; i < n; i = i + 2) { s = arr[i]; // stoi function to convert // string into integer int value = stoi(s); // Find operator char operation = arr[i - 1][0]; // If operator is equal to '+', // add value in sum variable // else subtract if (operation == '+' ) sum += value; else sum -= value; } return sum; } // Driver Function int main() { string arr[] = { "3" , "+" , "4" , "-" , "7" , "+" , "13" }; int n = sizeof (arr) / sizeof (arr[0]); cout << calculateSum(arr, n); return 0; } |
Java
// Java program to find sum of given array of // string type in integer form import java.io.*; class GFG { // Function to find the sum of given array public static int calculateSum(String arr[], int n) { // if string is empty if (n == 0 ) return 0 ; String s = arr[ 0 ]; // parseInt function to convert // string into integer int value = Integer.parseInt(s); int sum = value; for ( int i = 2 ; i < n; i = i + 2 ) { s = arr[i]; // parseInt function to convert // string into integer value = Integer.parseInt(s); // Find operator char operation = arr[i - 1 ].charAt( 0 ); // If operator is equal to '+', // add value in sum variable // else subtract if (operation == '+' ) sum += value; else sum -= value; } return sum; } // Driver code public static void main (String[] args) { String arr[] = { "3" , "+" , "4" , "-" , "7" , "+" , "13" }; int n = arr.length; System.out.println( calculateSum(arr, n)); } } // This code in contributed by Upendra bartwal |
Python 3
# Python3 program to find sum of given # array of string type in integer form # Function to find the sum of given array def calculateSum(arr, n): # if string is empty if (n = = 0 ): return 0 s = arr[ 0 ] # stoi function to convert # string into integer value = int (s) sum = value for i in range ( 2 , n, 2 ): s = arr[i] # stoi function to convert # string into integer value = int (s) # Find operator operation = arr[i - 1 ][ 0 ] # If operator is equal to '+', # add value in sum variable # else subtract if (operation = = '+' ): sum + = value else : sum - = value return sum # Driver Function arr = [ "3" , "+" , "4" , "-" , "7" , "+" , "13" ] n = len (arr) print (calculateSum(arr, n)) # This code is contributed by Smitha |
C#
// C# program to find sum of given array of // string type in integer form using System; class GFG { // Function to find the sum of given array public static int calculateSum( string []arr, int n) { // if string is empty if (n == 0) return 0; string s = arr[0]; // parseInt function to convert // string into integer int value = int .Parse(s); int sum = value; for ( int i = 2; i < n; i = i + 2) { s = arr[i]; // parseInt function to convert // string into integer value = int .Parse(s); // Find operator char operation = arr[i - 1][0]; // If operator is equal to '+', // add value in sum variable // else subtract if (operation == '+' ) sum += value; else sum -= value; } return sum; } // Driver code public static void Main () { string []arr = { "3" , "+" , "4" , "-" , "7" , "+" , "13" }; int n = arr.Length; Console.Write(calculateSum(arr, n)); } } // This code in contributed by nitin mittal. |
PHP
<?php // php program to find sum of given // array of string type in integer form // Function to find the // sum of given array function calculateSum( $arr , $n ) { // if string is empty if ( $n == 0) return 0; $s = $arr [0]; // stoi function to convert // string into integer $value = (int) $s ; $sum = $value ; for ( $i = 2; $i < $n ; $i = $i + 2) { $s = $arr [ $i ]; // cast to convert // string into integer $value = (int) $s ; // Find operator $operation = $arr [ $i - 1]; // If operator is equal to '+', // add value in sum variable // else subtract if ( $operation == '+' ) $sum += $value ; else if ( $operation == '-' ) $sum -= $value ; } return $sum ; } // Driver code $arr = array ( "3" , "+" , "4" , "-" , "7" , "+" , "13" ); $n = sizeof( $arr ) / sizeof( $arr [0]); echo calculateSum( $arr , $n ); // This code is contributed by mits ?> |
Javascript
<script> // Javascript program to find sum of given array of // string type in integer form // Function to find the sum of given array function calculateSum(arr, n) { // if string is empty if (n == 0) return 0; let s = arr[0]; // parseInt function to convert // string into integer let value = parseInt(s); let sum = value; for (let i = 2; i < n; i = i + 2) { s = arr[i]; // parseInt function to convert // string into integer value = parseInt(s); // Find operator let operation = arr[i - 1][0]; // If operator is equal to '+', // add value in sum variable // else subtract if (operation == '+' ) sum += value; else sum -= value; } return sum; } let arr = [ "3" , "+" , "4" , "-" , "7" , "+" , "13" ]; let n = arr.length; document.write(calculateSum(arr, n)); // This code is contributed by vaibhavrabadiya117. </script> |
Output
13
Time Complexity: O(n)
Auxiliary Space: O(1)
Please Login to comment...