前言

今天本来打算做一道挺难的题目,但是到十点了还没写出来,为了不干扰剩下的计划,果断换了一道简单题。

题目链接

分析

这道题主要是解析变量的,然后依次输出变量的值,我们先看下输入和输出

1
2
输入:
a:=3;b:=4;c:=5;
1
2
输出:
3 4 5

代码

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
80
81
82
83
84
85
86
87
88
89
90
91
92
import java.util.Scanner;

/**
* Created By XuanRan on 2021/12/12
*/
public class P1597语句解析 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String mmmm = scanner.nextLine();
int a = 0, b = 0, c = 0;
int f = -1;
for (int i = 0; i < mmmm.length(); i++) {
char cc = mmmm.charAt(i);
if (cc == 'a' && f == -1){
f = 1;
i += 2;
continue;
}
if (cc == 'b' && f == -1){
f = 2;
i += 2;
continue;
}
if (cc == 'c' && f == -1){
f = 3;
i += 2;
continue;
}

if (f == 1){
if (cc >= 47 && cc <= 57){
a = Integer.parseInt(new String(String.valueOf(cc))) ;
continue;
}
if (cc =='a'){
a =(int) a;
}
if (cc =='b'){
a =(int) b;
}
if (cc =='c'){
a = (int)c;
}
f = -1;
}




if (f == 2){
if (cc >= 47 && cc <= 57){
b = Integer.parseInt(new String(String.valueOf(cc))) ;
continue;
}
if (cc =='a'){
b = (int)a;
}
if (cc =='b'){
b =(int) b;
}
if (cc =='c'){
b =(int) c;
}
f = -1;

}


if (f == 3){
if (cc >= 47 && cc <= 57){
c = Integer.parseInt(new String(String.valueOf(cc))) ;
continue;
}
if (cc =='a'){
c = (int)a;
}
if (cc =='b'){
c = (int)b;
}
if (cc =='c'){
c = (int)c;
}
f = -1;

}

}

System.out.printf("%d %d %d",(int)a,b,c);
}
}

代码中变量f的主要作用是为了控制变量(a,b,c)的读取状态,防止因为a=c这类的情况造成干扰,然后在赋值之后将f改为-1重新下次读取。

结语

明天见。