Data commit

This commit is contained in:
Ingy döt Net 2023-07-01 11:58:00 -04:00
parent 7387c8f97b
commit cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions

View file

@ -0,0 +1,27 @@
···
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

View file

@ -0,0 +1,34 @@
···
http://rosettacode.org/wiki/ABC_Problem
···
import java.util.Arrays
import java.util.Collections
import java.util.List
■ ABC
§ static
▶ main
• args⦂ String[]
blocks⦂ List⟨String⟩:
Arrays.asList "BO", "XK", "DQ", "CP", "NA",
"GT", "RE", "TG", "QD", "FS",
"JW", "HU", "VI", "AN", "OB",
"ER", "FS", "LY", "PC", "ZM"
words⦂ List⟨String⟩:
Arrays.asList "A", "BARK", "BOOK", "TREAT",
"COMMON", "SQUAD", "CONFUSE"
for each word in words
System.out.println "⸨word⸩: ⸨canMakeWord word, blocks⸩"
▶ canMakeWord⦂ boolean
• word⦂ String
• blocks⦂ List⟨String⟩
if word.isEmpty°
return true
for each block #i in blocks⦂ String
if 0 ≤ block.indexOf word.charAt 0
Collections.swap blocks, 0, i
if canMakeWord (word.substring 1),
blocks.subList 1, blocks.size°
return true
Collections.swap blocks, 0, i
return false