1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
#include <iostream>
int getLetterValue(char letter, int n, char *letters, int *values) {
for (int i = 0; i < n; i++) {
if (letters[i] == letter)
return values[i];
}
return 0;
}
int calculate(char *str, int n, char *letters, int *values) {
if (str[1] == '\0')
return getLetterValue(str[0], n, letters, values);
int sum = 0, prod = getLetterValue(str[0], n, letters, values);
for (int i = 1; str[i] != '\0'; i++) {
if (str[i] == '+') {
sum += prod;
prod = 1;
}
else if (str[i] != '.')
prod *= getLetterValue(str[i], n, letters, values);
}
sum += prod;
return sum;
}
int main() {
char str[] = "a.b+b.c+d+a.c";
char letters[] = { 'a', 'b', 'c', 'd' };
int values[] = { 2 , 5 , 3 , 42 };
std::cout << calculate(str, 4, letters, values) << std::endl;;
char str1[] = "h.e.l.l.o+w.o.r.l.d";
char letters1[] = { 'd', 'e', 'h', 'l', 'o', 'r' };
int values1[] = { 3 , 2 , 3 , 1 , 5 , 10 };
std::cout << calculate(str1, 6, letters1, values1) << std::endl;
}
|