File: abc.java

package info (click to toggle)
haskell-skylighting-core 0.14.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 6,440 kB
  • sloc: xml: 118,808; haskell: 3,117; cs: 72; ada: 67; java: 37; ansic: 32; cpp: 31; php: 25; tcl: 19; lisp: 14; perl: 11; makefile: 5
file content (44 lines) | stat: -rw-r--r-- 1,875 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import java.util.Arrays;

public class ABC{
        private static void swap(int i, int j, Object... arr){
                Object tmp = arr[i];
                arr[i] = arr[j];
                arr[j] = tmp;
        }
        
        public static boolean canMakeWord(String word, String... blocks) {
            if(word.length() == 0)
                return true;
         
            char c = Character.toUpperCase(word.charAt(0));
            for(int i = 0; i < blocks.length; i++) {
                String b = blocks[i];
                if(Character.toUpperCase(b.charAt(0)) != c && Character.toUpperCase(b.charAt(1)) != c)
                    continue;
                swap(0, i, blocks);
                if(canMakeWord(word.substring(1), Arrays.copyOfRange(blocks, 1, blocks.length)))
                    return true;
                swap(0, i, blocks);
            }
         
            return false;
        }
        
        public static void main(String[] args){
                String[] blocks = {"BO", "XK", "DQ", "CP", "NA", 
                                "GT", "RE", "TG", "QD", "FS", 
                                "JW", "HU", "VI", "AN", "OB", 
                                "ER", "FS", "LY", "PC", "ZM"};

                System.out.println("\"\": " + canMakeWord("", blocks));
                System.out.println("A: " + canMakeWord("A", blocks));
                System.out.println("BARK: " + canMakeWord("BARK", blocks));
                System.out.println("book: " + canMakeWord("book", blocks));
                System.out.println("treat: " + canMakeWord("treat", blocks));
                System.out.println("COMMON: " + canMakeWord("COMMON", blocks));
                System.out.println("SQuAd: " + canMakeWord("SQuAd", blocks));
                System.out.println("CONFUSE: " + canMakeWord("CONFUSE", blocks));
                
        }
}