给出一千多行循环伪代码的附件,上图附件,求A的最终结果。这道题是栈的运用,解题如下:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.Stack;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br=new BufferedReader(new FileReader(new File("D:\\java-eclipse-workspace2\\LeetCode\\src\\com\\hua\\data1.txt")));
Stack<int[]> repeat=new Stack<>();
Stack<int[]> data=new Stack<>();
int A=0;
// br.readLine();
while(br.ready()) {
String str=br.readLine();
if(str.trim().charAt(0)=='R') {
repeat.add(new int[] {str.indexOf("REPEAT"),Integer.valueOf(str.charAt(str.length()-1)-'0')});
}else {
data.add(new int[] {str.indexOf("A"),Integer.valueOf(str.charAt(str.length()-1)-'0')});
int index=str.indexOf('A');
while(!repeat.isEmpty()&&repeat.peek()[0]>=index) {
repeat.pop();
}
int sum=1;
for(int[] i:repeat) {
sum*=i[1];
}
A+=sum*data.pop()[1];
}
}
System.out.println(A);
}
}