Advertisement
Zavada

Untitled

Feb 18th, 2017
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.94 KB | None | 0 0
  1. import java.util.ArrayList;
  2.  
  3. public class Runner {
  4.  
  5. public static void main(String[] args) {
  6.  
  7. String testString = "++++++++++[>++++++++++<-]>---\"";
  8.  
  9. ArrayList<Integer> positive = new ArrayList<Integer>();
  10. ArrayList<Integer> negative = new ArrayList<Integer>();
  11.  
  12. positive.add(0);
  13. negative.add(0);
  14.  
  15. int pointer = 0;
  16.  
  17. for(int i = 0; i < testString.length(); ++i) {
  18.  
  19. switch(testString.charAt(i)) {
  20.  
  21. case '>':
  22. if(positive.size() < pointer + 2)
  23. positive.add(0);
  24. pointer++;
  25. break;
  26.  
  27. case '<':
  28. if(pointer-1 < 0)
  29. if(-negative.size() > pointer-2)
  30. negative.add(0);
  31. pointer--;
  32. break;
  33.  
  34. case '+':
  35. if(pointer < 0)
  36. negative.set(-pointer, negative.get(-pointer) + 1);
  37. else
  38. positive.set(pointer, positive.get(pointer) + 1);
  39. break;
  40.  
  41. case '-':
  42. if(pointer < 0)
  43. negative.set(-pointer, negative.get(-pointer) - 1);
  44. else
  45. positive.set(pointer, positive.get(pointer) - 1);
  46. break;
  47.  
  48. case '.':
  49. if(pointer < 0)
  50. System.out.println(negative.get(-pointer));
  51. else
  52. System.out.println(positive.get(pointer));
  53. break;
  54.  
  55. case '\"':
  56. if(pointer < 0)
  57. System.out.println(negative.get(-pointer).intValue());
  58. else
  59. System.out.println((char)positive.get(pointer).intValue());
  60. break;
  61.  
  62. case ',':
  63. if(pointer < 0)
  64. negative.set(-pointer,new java.util.Scanner(System.in).nextInt());
  65. else
  66. positive.set(pointer,new java.util.Scanner(System.in).nextInt());
  67. break;
  68.  
  69. case ']':
  70.  
  71. int value = 0;
  72.  
  73. if(pointer < 0)
  74. value = negative.get(-pointer);
  75. else
  76. value = positive.get(pointer);
  77.  
  78. if(value != 0) {
  79. int index = 0;
  80. for(int j = 0; j < i; ++j) {
  81. if(testString.charAt(j) == '[')
  82. index = j;
  83. }
  84. i = index;
  85. }
  86.  
  87. break;
  88.  
  89. }
  90.  
  91. }
  92.  
  93. }
  94.  
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement