Advertisement
Guest User

Untitled

a guest
Sep 22nd, 2019
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.34 KB | None | 0 0
  1. package StackAndQueue.exercise;
  2.  
  3. import java.util.ArrayDeque;
  4. import java.util.Collections;
  5. import java.util.Scanner;
  6.  
  7. public class SimpleTextEditor {
  8. public static void main(String[] args) {
  9. Scanner scanner = new Scanner(System.in);
  10. int num = Integer.parseInt(scanner.nextLine());
  11.  
  12. ArrayDeque<Character> data = new ArrayDeque<>();
  13. ArrayDeque<String> secondData = new ArrayDeque<>();
  14. while (num-- > 0) {
  15. String[] inputData = scanner.nextLine().split("\\s+");
  16. switch (inputData[0]) {
  17. case "1":
  18. String text = inputData[1];
  19. for (int i = 0; i < text.length(); i++) {
  20. data.push(text.charAt(i));
  21. }
  22. secondData.offer(text);
  23. break;
  24. case "2":
  25. int deleteIndex = Integer.parseInt(inputData[1]);
  26. if (deleteIndex >= 0 && deleteIndex <= data.size()) {
  27. for (int i = 0; i < deleteIndex; i++) {
  28. data.pop();
  29. }
  30. }
  31. if (data.isEmpty()) {
  32. secondData.push(" ");
  33. } else {
  34. secondData.addAll(Collections.singleton(data.toString()));
  35. }
  36. break;
  37. case "3":
  38. int count = Integer.parseInt(inputData[1]);
  39. if (count >= 0 && count <= data.size()) {
  40. while (count-- > 0) {
  41. System.out.println(data.peek());
  42. break;
  43. }
  44. char current = data.pop();
  45. data.offer(current);
  46. }
  47. break;
  48. case "4":
  49. String currText = secondData.poll();
  50. data.clear();
  51. if (currText.equals(" ")) {
  52. data.push(' ');
  53. } else {
  54. for (int i = 0; i < currText.length(); i++) {
  55. data.offer(currText.charAt(i));
  56. }
  57. }
  58. break;
  59. }
  60. }
  61. }
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement