28 lines
948 B
Plaintext
28 lines
948 B
Plaintext
···
|
||
http://rosettacode.org/wiki/ABC_Problem
|
||
···
|
||
■ ABC
|
||
§ static
|
||
blocks⦂ StringBuffer " BO XK DQ CP NA GT RE TG QD FS
|
||
JW HU VI AN OB ER FS LY PC ZM"
|
||
▶ main
|
||
• args⦂ String[]
|
||
for each word in ["A", "BARK", "BOOK", "TREAT",
|
||
"COMMON", "SQUAD", "CONFUSE"]⦂ String
|
||
|
||
System.out.println "⸨word⸩: ⸨canMakeWord word⸩"
|
||
|
||
▶ canMakeWord⦂ boolean
|
||
• word⦂ String
|
||
solution⦂ boolean: word.isEmpty°
|
||
if no solution
|
||
i⦂ int: blocks.indexOf word.substring 0, 1
|
||
🔁 until solution or i < 0
|
||
i: i ÷ 3 × 3 · block index
|
||
block⦂ String: blocks.substring i, i + 3
|
||
blocks.delete i, i + 3 · remove block
|
||
solution: canMakeWord word.substring 1
|
||
blocks.insert i, block · restore block
|
||
i: blocks.indexOf (word.substring 0, 1), i + 3
|
||
return solution
|