सबसे उपयुक्त समाधान उन बाधाओं पर निर्भर करता है जिनसे आप अपेक्षा कर सकते हैं। आपका शब्दकोश कितना बड़ा है? आपका क्रॉसवर्ड कितना बड़ा है।
मैं Suffix trees पर एक नज़र डालने का सुझाव दूंगा। आप सभी शब्दकोष शब्दों को एक में सम्मिलित कर सकते हैं। फिर पंक्तियों, स्तंभों और विकर्णों के लिए प्रत्यय पेड़ की खोज करें। पंक्तियों के लिए, प्रत्येक पंक्ति में पहले अक्षर के लिए पेड़ की जड़ से एक खोज शुरू करें और जब आप पंक्ति से गुजरते हैं तो पेड़ के माध्यम से फिर से शुरू करें। यदि आवश्यक हो तो दाएं से बाएं से वही करें। कॉलम और विकर्णों के लिए इसी तरह की कहानी।
वृक्ष निर्माण ओ (एन) है और ओ (एन) अंतरिक्ष का उपभोग करता है, जहां एन वर्णों में आपके शब्दकोश का आकार है। खोज तब ओ (पीक्यू) समय लेगा, जहां आपका क्रॉसवर्ड आकार PxQ का आकार है। ओ (एन + पीक्यू) और ओ (एन) की एक समग्र रनटाइम देना।
बात यह है कि, प्रत्यय पेड़ लागू करने के लिए एक दर्द है। वे वास्तव में हैं। तो तुम एक साधारण Trie, जो आप हे की कुल क्रम (N + पीक्यू (अधिकतम (पी, क्यू)) दे देंगे के लिए बसने से पसंद कर सकते हैं।
एक हैश? तुम्हारा मतलब हैश ट्राई? –
बाधाएं क्या हैं - क्या प्रत्येक चरित्र को क्रॉसवर्ड में पिछले के समीप होना चाहिए? – Andy
इग्नियो: मेरा मतलब सामान्य हैश टेबल था। – Edward