⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sgu397.java

📁 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 + -