Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- public class Runner {
- public static void main(String[] args) {
- String testString = "++++++++++[>++++++++++<-]>---\"";
- ArrayList<Integer> positive = new ArrayList<Integer>();
- ArrayList<Integer> negative = new ArrayList<Integer>();
- positive.add(0);
- negative.add(0);
- int pointer = 0;
- for(int i = 0; i < testString.length(); ++i) {
- switch(testString.charAt(i)) {
- case '>':
- if(positive.size() < pointer + 2)
- positive.add(0);
- pointer++;
- break;
- case '<':
- if(pointer-1 < 0)
- if(-negative.size() > pointer-2)
- negative.add(0);
- pointer--;
- break;
- case '+':
- if(pointer < 0)
- negative.set(-pointer, negative.get(-pointer) + 1);
- else
- positive.set(pointer, positive.get(pointer) + 1);
- break;
- case '-':
- if(pointer < 0)
- negative.set(-pointer, negative.get(-pointer) - 1);
- else
- positive.set(pointer, positive.get(pointer) - 1);
- break;
- case '.':
- if(pointer < 0)
- System.out.println(negative.get(-pointer));
- else
- System.out.println(positive.get(pointer));
- break;
- case '\"':
- if(pointer < 0)
- System.out.println(negative.get(-pointer).intValue());
- else
- System.out.println((char)positive.get(pointer).intValue());
- break;
- case ',':
- if(pointer < 0)
- negative.set(-pointer,new java.util.Scanner(System.in).nextInt());
- else
- positive.set(pointer,new java.util.Scanner(System.in).nextInt());
- break;
- case ']':
- int value = 0;
- if(pointer < 0)
- value = negative.get(-pointer);
- else
- value = positive.get(pointer);
- if(value != 0) {
- int index = 0;
- for(int j = 0; j < i; ++j) {
- if(testString.charAt(j) == '[')
- index = j;
- }
- i = index;
- }
- break;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement