#include <stdio.h>
int main() {
int r = 4;
int w = 2;
int x = 1;
int i;
int value = 0;
char grant[3];
scanf("%s", grant);
for (i = 0; i < 3; i++) {
if (grant[i] == 'r') {
value |= r;
} else if (grant[i] == 'w') {
value |= w;
} else if (grant[i] == 'x') {
value |= x;
}
}
char op[2];
while (scanf("%s", op) != EOF) {
if(op[0] == '-') {
switch (op[1]) {
case 'r' : value ^= r; break;
case 'w' : value ^= w; break;
case 'x' : value ^= x; break;
}
} else if (op[0] == '+') {
switch (op[1]) {
case 'r' : value |= r; break;
case 'w' : value |= w; break;
case 'x' : value |= x; break;
}
}
}
printf("%d", value);
return 0;
}
4就是对应的00000100 异或就是把他右边数第三位 变0也就完成了-的作用
linux停下来 crtl+d