📄 sgu397.java
字号:
import java.io.*;
import java.lang.*;
import java.util.*;
public class Solution implements Runnable {
Scanner in;
PrintWriter out;
String command;
class Node {
char ch;
int prev, succ;
Node(char ch, int prev, int succ) {
this.ch = ch;
this.prev = prev;
this.succ = succ;
}
}
Node node[];
int pop, cursor;
private boolean Is_Lower(char ch) {
return 'a' <= ch && ch <= 'z';
}
private void Init() {
command = in.next();
node = new Node[command.length() + 5];
pop = 1;
node[0] = new Node('\0', -1, -1);
cursor = 0;
}
private void Left() {
if (node[cursor].prev != -1) cursor = node[cursor].prev;
}
private void Right() {
if (node[cursor].succ != -1) cursor = node[cursor].succ;
}
private void Insert(char ch) {
node[pop] = new Node(ch, cursor, node[cursor].succ);
if (node[cursor].succ != -1) node[node[cursor].succ].prev = pop;
node[cursor].succ = pop++;
cursor = pop - 1;
}
private void Work() {
int i;
for (i = 0; i < command.length(); i++)
if (!Is_Lower(command.charAt(i))) {
switch (command.charAt(i)) {
case 'L' : Left(); break;
case 'R' : Right(); break;
}
} else Insert(command.charAt(i));
for (i = 0; node[i].succ != -1; i = node[i].succ)
out.print(node[node[i].succ].ch);
out.println();
}
public void run() {
try {
in = new Scanner(System.in);
out = new PrintWriter(System.out);
while (in.hasNext()) {
Init();
Work();
}
in.close();
out.close();
}
catch (Exception ex) {
ex.printStackTrace();
System.exit(-1);
}
}
public static void main(String args[]) {
new Thread(new Solution()).start();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -