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++
#include <bits/stdc++.h>
using namespace std;
int calculateSum(string arr[], int n)
{
if (n == 0)
return 0;
string s = arr[0];
int value = stoi(s);
int sum = value;
for ( int i = 2; i < n; i = i + 2)
{
s = arr[i];
int value = stoi(s);
char operation = arr[i - 1][0];
if (operation == '+' )
sum += value;
else
sum -= value;
}
return sum;
}
int main()
{
string arr[] = { "3" , "+" , "4" , "-" ,
"7" , "+" , "13" };
int n = sizeof (arr) / sizeof (arr[0]);
cout << calculateSum(arr, n);
return 0;
}
|
Java
import java.io.*;
class GFG {
public static int calculateSum(String arr[], int n)
{
if (n == 0 )
return 0 ;
String s = arr[ 0 ];
int value = Integer.parseInt(s);
int sum = value;
for ( int i = 2 ; i < n; i = i + 2 )
{
s = arr[i];
value = Integer.parseInt(s);
char operation = arr[i - 1 ].charAt( 0 );
if (operation == '+' )
sum += value;
else
sum -= value;
}
return sum;
}
public static void main (String[] args)
{
String arr[] = { "3" , "+" , "4" , "-" ,
"7" , "+" , "13" };
int n = arr.length;
System.out.println( calculateSum(arr, n));
}
}
|
Python 3
def calculateSum(arr, n):
if (n = = 0 ):
return 0
s = arr[ 0 ]
value = int (s)
sum = value
for i in range ( 2 , n, 2 ):
s = arr[i]
value = int (s)
operation = arr[i - 1 ][ 0 ]
if (operation = = '+' ):
sum + = value
else :
sum - = value
return sum
arr = [ "3" , "+" , "4" , "-" , "7" , "+" , "13" ]
n = len (arr)
print (calculateSum(arr, n))
|
C#
using System;
class GFG {
public static int calculateSum( string []arr,
int n)
{
if (n == 0)
return 0;
string s = arr[0];
int value = int .Parse(s);
int sum = value;
for ( int i = 2; i < n; i = i + 2)
{
s = arr[i];
value = int .Parse(s);
char operation = arr[i - 1][0];
if (operation == '+' )
sum += value;
else
sum -= value;
}
return sum;
}
public static void Main ()
{
string []arr = { "3" , "+" , "4" , "-" ,
"7" , "+" , "13" };
int n = arr.Length;
Console.Write(calculateSum(arr, n));
}
}
|
PHP
<?php
function calculateSum( $arr , $n )
{
if ( $n == 0)
return 0;
$s = $arr [0];
$value = (int) $s ;
$sum = $value ;
for ( $i = 2; $i < $n ; $i = $i + 2)
{
$s = $arr [ $i ];
$value = (int) $s ;
$operation = $arr [ $i - 1];
if ( $operation == '+' )
$sum += $value ;
else if ( $operation == '-' )
$sum -= $value ;
}
return $sum ;
}
$arr = array ( "3" , "+" , "4" , "-" ,
"7" , "+" , "13" );
$n = sizeof( $arr ) / sizeof( $arr [0]);
echo calculateSum( $arr , $n );
?>
|
Javascript
<script>
function calculateSum(arr, n)
{
if (n == 0)
return 0;
let s = arr[0];
let value = parseInt(s);
let sum = value;
for (let i = 2; i < n; i = i + 2)
{
s = arr[i];
value = parseInt(s);
let operation = arr[i - 1][0];
if (operation == '+' )
sum += value;
else
sum -= value;
}
return sum;
}
let arr = [ "3" , "+" , "4" , "-" , "7" , "+" , "13" ];
let n = arr.length;
document.write(calculateSum(arr, n));
</script>
|
Time Complexity: O(n)
Auxiliary Space: O(1)
Last Updated :
19 Sep, 2023
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...