-
Notifications
You must be signed in to change notification settings - Fork 19
/
addingwords.java
79 lines (66 loc) · 1.41 KB
/
addingwords.java
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
import java.util.Scanner;
import java.util.HashMap;
public class addingwords {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
HashMap<String , Integer> map1 = new HashMap<>();
HashMap<Integer , String> map2 = new HashMap<>();
while (scan.hasNext())
{
String operation = scan.next();
if (operation.equals("def"))
{
String word = scan.next();
int num = scan.nextInt();
if (map2.containsKey(map1.get(word)))
map2.remove(map1.get(word));
map1.put(word , num);
map2.put(num, word);
}
else if (operation.equals("calc"))
{
String firstVar = scan.next();
boolean unknown = false;
int sum = 0;
System.out.print(firstVar + " ");
if (map1.containsKey(firstVar))
sum += map1.get(firstVar);
else
unknown = true;
while (true)
{
String op = scan.next();
System.out.print(op + " ");
String var;
if (op.equals("-"))
{
var = scan.next();
System.out.print(var + " ");
if (map1.containsKey(var))
sum -= map1.get(var);
else
unknown = true;
}
else if (op.equals("+"))
{
var = scan.next();
System.out.print(var + " ");
if (map1.containsKey(var))
sum += map1.get(var);
else
unknown = true;
}
else
break;
}
System.out.println(map2.containsKey(sum) && !unknown ? map2.get(sum) : "unknown");
}
else
{
map1.clear();
map2.clear();
}
}
scan.close();
}
}