Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package StackAndQueue.exercise;
- import java.util.ArrayDeque;
- import java.util.Collections;
- import java.util.Scanner;
- public class SimpleTextEditor {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- int num = Integer.parseInt(scanner.nextLine());
- ArrayDeque<Character> data = new ArrayDeque<>();
- ArrayDeque<String> secondData = new ArrayDeque<>();
- while (num-- > 0) {
- String[] inputData = scanner.nextLine().split("\\s+");
- switch (inputData[0]) {
- case "1":
- String text = inputData[1];
- for (int i = 0; i < text.length(); i++) {
- data.push(text.charAt(i));
- }
- secondData.offer(text);
- break;
- case "2":
- int deleteIndex = Integer.parseInt(inputData[1]);
- if (deleteIndex >= 0 && deleteIndex <= data.size()) {
- for (int i = 0; i < deleteIndex; i++) {
- data.pop();
- }
- }
- if (data.isEmpty()) {
- secondData.push(" ");
- } else {
- secondData.addAll(Collections.singleton(data.toString()));
- }
- break;
- case "3":
- int count = Integer.parseInt(inputData[1]);
- if (count >= 0 && count <= data.size()) {
- while (count-- > 0) {
- System.out.println(data.peek());
- break;
- }
- char current = data.pop();
- data.offer(current);
- }
- break;
- case "4":
- String currText = secondData.poll();
- data.clear();
- if (currText.equals(" ")) {
- data.push(' ');
- } else {
- for (int i = 0; i < currText.length(); i++) {
- data.offer(currText.charAt(i));
- }
- }
- break;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement