Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.lang.reflect.Method;
- import java.util.ArrayList;
- import java.util.List;
- public class Scratch {
- public static void main(String[] args) throws Exception {
- List<String> valid = new ArrayList<String>();
- for(String s : getStrings("")) {
- if(checkString(s)) {
- valid.add(s);
- }
- }
- if(valid.isEmpty()) {
- System.out.println("No valid");
- }
- for(String s : valid) {
- System.out.println(s);
- }
- }
- public static List<String> getStrings(String s) {
- List<String> r = new ArrayList<String>();
- if(s.length() == 10) {
- r.add(s);
- return r;
- }
- for(char c = 'A'; c <= 'E'; c++) {
- r.addAll(getStrings(s + c));
- }
- return r;
- }
- public static boolean checkString(String s) throws Exception {
- for(int i = 0; i < 10; i++) {
- char letter = s.charAt(i);
- Method m = Scratch.class.getMethod("Q" + i + letter, String.class);
- boolean b = (boolean)m.invoke(null, s);
- if(!b) {
- return false;
- }
- }
- return true;
- }
- public static int substringCount(String s, String sub) {
- int index = s.indexOf(sub);
- int count = 0;
- while (index != -1) {
- count++;
- s = s.substring(index + 1);
- index = s.indexOf(sub);
- }
- return count;
- }
- public static boolean Q0A(String s) {
- return s.indexOf("D") == 7;
- }
- public static boolean Q0B(String s) {
- return s.indexOf("D") == 6;
- }
- public static boolean Q0C(String s) {
- return s.indexOf("D") == 5;
- }
- public static boolean Q0D(String s) {
- return s.indexOf("D") == 4;
- }
- public static boolean Q0E(String s) {
- return s.indexOf("D") == 3;
- }
- public static boolean Q1A(String s) {
- return s.charAt(2) == s.charAt(3);
- }
- public static boolean Q1B(String s) {
- return s.charAt(3) == s.charAt(4);
- }
- public static boolean Q1C(String s) {
- return s.charAt(4) == s.charAt(5);
- }
- public static boolean Q1D(String s) {
- return s.charAt(5) == s.charAt(6);
- }
- public static boolean Q1E(String s) {
- return s.charAt(6) == s.charAt(7);
- }
- public static boolean Q2A(String s) {
- return substringCount(s, "E") == 1;
- }
- public static boolean Q2B(String s) {
- return substringCount(s, "E") == 2;
- }
- public static boolean Q2C(String s) {
- return substringCount(s, "E") == 3;
- }
- public static boolean Q2D(String s) {
- return substringCount(s, "E") == 4;
- }
- public static boolean Q2E(String s) {
- return substringCount(s, "E") == 5;
- }
- public static boolean Q3A(String s) {
- return substringCount(s, "A") == 1;
- }
- public static boolean Q3B(String s) {
- return substringCount(s, "A") == 2;
- }
- public static boolean Q3C(String s) {
- return substringCount(s, "A") == 3;
- }
- public static boolean Q3D(String s) {
- return substringCount(s, "A") == 4;
- }
- public static boolean Q3E(String s) {
- return substringCount(s, "A") == 5;
- }
- public static boolean Q4A(String s) {
- return true;
- }
- public static boolean Q4B(String s) {
- return substringCount(s, "A") == substringCount(s, "B");
- }
- public static boolean Q4C(String s) {
- return substringCount(s, "A") == substringCount(s, "C");
- }
- public static boolean Q4D(String s) {
- return substringCount(s, "A") == substringCount(s, "D");
- }
- public static boolean Q4E(String s) {
- return false;
- }
- public static boolean Q5A(String s) {
- return s.lastIndexOf("B") == 4;
- }
- public static boolean Q5B(String s) {
- return s.lastIndexOf("B") == 5;
- }
- public static boolean Q5C(String s) {
- return s.lastIndexOf("B") == 6;
- }
- public static boolean Q5D(String s) {
- return s.lastIndexOf("B") == 7;
- }
- public static boolean Q5E(String s) {
- return s.lastIndexOf("B") == 8;
- }
- public static boolean Q6A(String s) {
- return Math.abs((int)s.charAt(6) - (int)s.charAt(7)) == 4;
- }
- public static boolean Q6B(String s) {
- return Math.abs((int)s.charAt(6) - (int)s.charAt(7)) == 3;
- }
- public static boolean Q6C(String s) {
- return Math.abs((int)s.charAt(6) - (int)s.charAt(7)) == 2;
- }
- public static boolean Q6D(String s) {
- return Math.abs((int)s.charAt(6) - (int)s.charAt(7)) == 1;
- }
- public static boolean Q6E(String s) {
- return s.charAt(6) == s.charAt(7);
- }
- public static boolean Q7A(String s) {
- return s.charAt(7) == s.charAt(0);
- }
- public static boolean Q7B(String s) {
- return s.charAt(7) == s.charAt(1);
- }
- public static boolean Q7C(String s) {
- return s.charAt(7) == s.charAt(2);
- }
- public static boolean Q7D(String s) {
- return s.charAt(7) == s.charAt(3);
- }
- public static boolean Q7E(String s) {
- return s.charAt(7) == s.charAt(4);
- }
- public static boolean Q8A(String s) {
- return (substringCount(s, "B") + substringCount(s, "C") + substringCount(s, "D")) == 3;
- }
- public static boolean Q8B(String s) {
- return (substringCount(s, "B") + substringCount(s, "C") + substringCount(s, "D")) == 4;
- }
- public static boolean Q8C(String s) {
- return (substringCount(s, "B") + substringCount(s, "C") + substringCount(s, "D")) == 5;
- }
- public static boolean Q8D(String s) {
- return (substringCount(s, "B") + substringCount(s, "C") + substringCount(s, "D")) == 6;
- }
- public static boolean Q8E(String s) {
- return (substringCount(s, "B") + substringCount(s, "C") + substringCount(s, "D")) == 7;
- }
- public static boolean Q9A(String s) {
- return true;
- }
- public static boolean Q9B(String s) {
- return true;
- }
- public static boolean Q9C(String s) {
- return true;
- }
- public static boolean Q9D(String s) {
- return true;
- }
- public static boolean Q9E(String s) {
- return true;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement