Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package Advent2018;
- import util.AdventOfCode;
- import java.util.List;
- public class Day5 extends AdventOfCode {
- public Day5(List<String> input) {
- super(input);
- }
- private int remove(StringBuilder in) {
- boolean removed = true;
- while (removed) {
- for (int i = 0; i < in.length() - 1; i++) {
- if ( (in.charAt(i) ^ in.charAt(i + 1)) == 32) {
- in.delete(i, i + 2);
- removed = true;
- break;
- }
- removed = false;
- }
- }
- return in.length();
- }
- @Override
- public Object part1() {
- StringBuilder chain = new StringBuilder(input.get(0));
- return remove(chain);
- }
- @Override
- public Object part2() {
- int min = Integer.MAX_VALUE;
- String[] patterns = new String[26];
- for (int i = 0; i < 26; i++) {
- patterns[i] = "[" + (Character.toString((char)(i + 'a'))) +
- (Character.toString((char)(i + 'A'))) + "]";
- //System.out.println(patterns[i]);
- }
- for (int i = 0; i < 26; i++) {
- String chain = input.get(0);
- chain = chain.replaceAll(patterns[i], "");
- int result = remove(new StringBuilder(chain));
- System.out.println(result);
- if (result < min) min = result;
- }
- return min;
- }
- @Override
- public void parse() {
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement