RosettaCodeData/Task/ABC-problem/Elena/abc-problem.elena

47 lines
1 KiB
Text
Raw Permalink Normal View History

2023-07-01 11:58:00 -04:00
import system'routines;
import system'collections;
2023-07-22 21:42:12 -07:00
import system'culture;
2023-07-01 11:58:00 -04:00
import extensions;
import extensions'routines;
extension op
{
canMakeWordFrom(blocks)
{
var list := ArrayList.load(blocks);
2023-12-16 21:33:55 -08:00
^ nil == (cast string(self)).toUpper().seekEach::(ch)
2023-07-01 11:58:00 -04:00
{
var index := list.indexOfElement
((word => word.indexOf(0, ch) != -1).asComparator());
if (index>=0)
{
list.removeAt(index); ^ false
}
else
{
^ true
}
}
}
}
2026-02-01 16:33:20 -08:00
public Program()
2023-07-01 11:58:00 -04:00
{
2026-02-01 16:33:20 -08:00
auto blocks := new const string[]{"BO", "XK", "DQ", "CP", "NA",
"GT", "RE", "TG", "QD", "FS",
"JW", "HU", "VI", "AN", "OB",
"ER", "FS", "LY", "PC", "ZM"};
2023-07-01 11:58:00 -04:00
2026-02-01 16:33:20 -08:00
auto words := new const string[]{"", "A", "BARK", "BOOK", "TREAT", "COMMON", "SQUAD", "Confuse"};
2023-07-01 11:58:00 -04:00
Enumerator e := words.enumerator();
e.next();
2023-12-16 21:33:55 -08:00
words.forEach::(word)
2023-07-01 11:58:00 -04:00
{
2025-06-11 20:16:52 -04:00
Console.printLine("can make '",word,"' : ",word.canMakeWordFrom(blocks));
2023-07-01 11:58:00 -04:00
}
}