Kann dieser Behälter so viel Flüssigkeit aufnehmen?
Synopse herausfordern
Wie Sie höchstwahrscheinlich wissen, haben Flüssigkeiten eine unbestimmte Form und ein bestimmtes Volumen. Als solche nehmen sie immer die Form ihres Behälters an. Sie können sich jedoch nicht erweitern, um ihren Container zu füllen.
Ihre heutige Aufgabe ist es zu bestimmen, ob eine bestimmte Menge an Flüssigkeit (dargestellt durch eine bestimmte Anzahl von LZeichen oder Zahlen, die das Volumen des Teils darstellen, gemäß Vorschlag) in einen Behälter einer bestimmten Größe (dargestellt durch eine Matrix von) passen kann oder nicht CZeichen) mit einer gewissen Menge an Leerzeichen (dargestellt durch Leerzeichen). Der Container enthält immer CZeichen rund um den Umfang.
Ihr Programm gibt einen Wahrheits- / Falschwert zurück, der davon abhängt, ob die Flüssigkeit in den Behälter passt. Es passt nur, wenn für jeden Teil der Flüssigkeit, der vom Rest getrennt ist (entweder durch einen Raum oder durch zwei Zeilenumbrüche).
Testfälle
LLL
L
----- True
CCCCC
C CC
C CC
CCCCC
LLL
LL
------ True
CCCCCC
C C C
C CCC
CCCCCC
L L
LLL
----- False (Not enough space)
CCCCC
CCCCC
C CC
CCCCC
LL
------ False (Spaces are not connected but liquid is)
CCCCCC
CCCC C
C CCCC
CCCCCC
L L
------ True
CCCCCC
CCCC C
C CCCC
CCCCCC
L L
------ True (There is a pocket of empty space which holds both parts of the liquid)
CCCCCC
CCC C
CCCCCC
CCCCCC
L
L
------ True (There is a pocket of empty space for each part of the liquid)
CCCCCC
CCCC C
C CCCC
CCCCCC
L L L LL
------ True
CCCCCCCCC
CCCC C C
C CCCCCCC
CCCCCC CC
CCCCCCCCC
L
L
----- True
CCCCC
CCCCC
C CC
CCCCC
Fühlen Sie sich frei, Testfälle vorzuschlagen!
Regeln
- Dies ist Code-Golf , daher gewinnt die kürzeste Antwort in Bytes.
- Standardlücken sind nicht zulässig.
LText als eine Liste von Bänden nehmen (dh eine Liste der Anzahl von Ls in jedem Betrag)? Da das Parsen nach Leerzeichen und doppelten Zeilenumbrüchen nichts mit dem Kern der Herausforderung zu tun zu haben scheint. Dürfen wir den CText stattdessen aus demselben Grund auch als Matrix aus zwei unterschiedlichen Werten betrachten?
Lund einer LLmit Leerzeichen der Größe 3 und 2 (ein Algorithmus, der nur kleinste Leerzeichen zuerst mit kleinsten noch zu verwendenden Flüssigkeitsstücken füllt, ergibt Falsey). Vielleicht das gleiche, aber mit 2 Lund einem LLLauch, um für die andere Richtung zu sorgen.
Lin eine Liste von Ganzzahlen. Die zweite ist das Parsen der Eingabematrix Cin eine Liste von Ganzzahlen. Und die dritte ist eine bestimmte Frage für einen gegebenen ganzzahligen Beutel A und B, wenn es eine Partition in A gibt, wenn alle ganzen Zahlen in jeder Partition summiert werden, um einen Beutel A 'zu erhalten, ist jede n-te größte Zahl in A' kleiner ( <=) als n-te größte Zahl in B '.
L\n\nL,CCCCC\nCCCCC\nC..CC\nCCCCC(.steht für ein Leerzeichen,\nrepräsentiert eine neue Zeile).