Suchen Sie anhand einer Liste von Wörtern und eines Buchstabenrasters alle Wörter im Raster und entfernen Sie alle Buchstaben, die nicht Teil eines der Wörter sind. Die Wörter können vorwärts, rückwärts, aufwärts, abwärts oder diagonal sein. Sie können davon ausgehen, dass kein Wort in der Liste an mehr als einer Stelle im Raster vorkommt.
Die Eingabe ist immer: eine Liste von Wörtern, 1 pro Zeile, gefolgt von einer leeren Zeile, gefolgt von einem Buchstabengitter.
Beispiele
Eingang
ADA
ALGOL
ASSEMBLY
BASIC
COBOL
DELPHI
FORTRAN
JAVA
LABVIEW
LOGO
PASCAL
PERL
PHP
PYTHON
SMALLTALK
VISUALC
LLJKCABLFCI
OROLOBOCOIM
GELACSAPRSX
LPSTAHWVTAV
ANRLXLXQRBI
IHPLEDOXAHS
KJYAPHPYNOU
FABMADANZJA
EVISNOHTYPL
AAYLBMESSAC
WEIVBALOGOM
Ausgabe
LL K FC
OR LOBOCOI
GELACSAPRS
LP T TAV
A L RBI
IHPLED A S
J APHP N U
A MADA A
V SNOHTYPL
AYLBMESSAC
WEIVBALOGO
Eingang
BACKSPACE
BOLD
CLOSE
COMPACTDISC
COPY
CPU
CURSOR
DELETE
DESKTOP
DVD
EDIT
ENTER
EXIT
FLOPPY
FONT
HARDWARE
INTERNET
KEYBOARD
MONITOR
MOUSE
PASSWORD
PASTE
RETURN
SAVE
SOFTWARE
START
TEXT
TOWER
WORDPROCESSING
IAUERAWTFOSICPN
DGZPFLOPPYARFLU
RSNOCURSORVZDBM
AMNIUOMRNHEGUIN
OTBNSRMONITORNT
BEYTTSGPJBOLDRT
YRQEAHEHARDWARE
EOGRRNECECLOSEP
KIONTYKTODTOWER
ELCENSUPERPDKNN
ATRTPRYKELPVIEJ
GIEANPOTKSEDUSL
NXCMPASSWORDRUC
TEDITAGVSWJCTOV
CWOYPGYQKNLVXMW
Ausgabe
UERAWTFOS
DG PFLOPPYA
R NOCURSORV
A NI O E
OT NS MONITOR
B TTS P BOLD
Y EA EHARDWARE
E RRNECECLOSE
K NT KTO TOWER
E SUPER D
TRTPRY ELPVIE
IEANPOTKSED S
XC PASSWORDRUC
TEDITA O
P MW
Das ist Code-Golf - die kürzeste Lösung gewinnt.
Antworten:
Ruby 1.9,
214210206182177173172166quelle
Perl - 230 Zeichen
Count enthält 4 für "-ln" Befehlszeilenoptionen.
Ungolfed:
quelle
.{$n}
Teil des regulären Ausdrucks (zusammen mit der/s
Option) wird um die Diagonalen (und gerade nach unten) gewickelt , um die Abwärtskomponente der Übereinstimmungsrichtung zu implementieren. Ist Ihre Besorgnis eine falsche Übereinstimmung, die endet? AFAICT, dies kann wegen der Zeilenumbrüche in der Zeichenkette keine falschen Übereinstimmungen ergeben. Angenommen, der Buchstabe i eines Wortes steht in der rechten Spalte und wir überprüfen die SE-Diagonale. Der.{$n}
Teil überspringt die nächsten $ W + 1-Zeichen, die unmittelbar auf \ n und die gesamte nächste Zeile folgen. Buchstabe i + 1 stimmt nicht \ n mit dem nächsten überein, daher keine Gesamtübereinstimmung.JavaScript: 342 Zeichen
Code-Golf Version:
Formatierte Version:
Das Konzept dieser Lösung besteht darin, über alle Positionen auf der Platine zu iterieren, die Werte eines 2D-Arrays für jede Position mit "" zu initialisieren und dann alle möglichen Wortrichtungen und Wortversätze zu berücksichtigen. Wenn ein passendes Wort gefunden wird, wird der Wert des Arrays für diese Position auf den richtigen Buchstaben aktualisiert. Schließlich wird das Array in eine Zeichenfolge konvertiert und zurückgegeben.
quelle
Scala
697, 666649entgolfet:
quelle
stdin
anstelle von verwendenfromFile
. Ich habe nicht angegeben, woher die Eingabe kommt.