C++で数値+および-を使用して配列式を評価します
この問題では、式を示すn個の文字値で構成される配列arr[]が与えられます。私たちのタスクは、数値+および–を使用して配列式を評価することです。
式は、数字、「+」文字、「-」文字のみで構成されます。
問題を理解するために例を見てみましょう
入力: arr ={“ 5”、“ +”、“ 2”、“ -8”、“ +”、“ 9”、}
出力: 8
説明:
式は5+2-8 + 9 =8
ソリューションアプローチ:
問題の解決策は、各操作を実行してから値を返すことで見つかります。各数値は、同等の整数値に変換する必要があります。
ソリューションの動作を説明するプログラム
例
#include <bits/stdc++.h> using namespace std; int solveExp(string arr[], int n) { if (n == 0) return 0; int value, result; result = stoi(arr[0]); for (int i = 2; i < n; i += 2) { int value = stoi(arr[i]); if (arr[i - 1 ] == "+") result += value; else result -= value; } return result; } int main() { string arr[] = { "5", "-", "3", "+", "8", "-", "1" }; int n = sizeof(arr) / sizeof(arr[0]); cout<<"The solution of the equation is "<<solveExp(arr, n); return 0; }
出力-
The solution of the equation is 9
-
C++で-1と+1の配列に合計が0のサイズKのサブセットがあるかどうかを調べます
この問題では、1と-1のみで構成される配列arr[]と整数値kが与えられます。私たちのタスクは、-1と+1の配列に合計が0のサイズKのサブセットがあるかどうかを見つけることです。 問題を理解するために例を見てみましょう 入力: arr [] ={-1、1、-1、-1、1、1、-1}、k =4 出力: はい 説明: サイズ4のサブセット{-1、1、-1、1}。合計=-1+ 1-1 + 1 =0 ソリューションアプローチ: 合計が0に等しいサイズkのサブセットが存在するかどうかを確認する必要があります。サブセットとして、配列の任意の要素を考慮することができます。1と-1の数
-
C++での例を含む式ツリー
式ツリーは、ツリーの各ノードが演算子またはオペランドで構成される特殊なタイプの二分木です。 リーフノード ツリーのオペランドを表します 。 非リーフノード ツリーの演算子を表します 。 例: 簡単に解決できる中置式を取得するには、順序トラバーサルを使用してツリーをトラバースする必要があります。