Skip to content

Instantly share code, notes, and snippets.

@defndaines
Last active October 28, 2015 11:58
Show Gist options
  • Save defndaines/64f10b48148ed515aa74 to your computer and use it in GitHub Desktop.
Save defndaines/64f10b48148ed515aa74 to your computer and use it in GitHub Desktop.
package rtb.onezero;
import java.util.ArrayList;
import java.util.List;
import java.util.function.BiFunction;
import java.util.stream.Collectors;
public final class Parser {
private static BiFunction<List<String>, Character, List<String>> appender
= (acc, c) -> acc.stream().map(str -> str + c).collect(Collectors.toList());
public static List<String> parse(String phrase) {
List<String> acc = new ArrayList<>();
acc.add("");
for (char c : phrase.toCharArray())
if (c == '?') {
List<String> append1 = appender.apply(acc, '1');
acc = appender.apply(acc, '0');
acc.addAll(append1);
}
else
acc = appender.apply(acc, c);
return acc;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment