मान लीजिए हमारे पास एक मैट्रिक्स कैरेक्टर बोर्ड है। जहां प्रत्येक कोशिका एक चरित्र धारण कर रही है। हमारे पास लक्ष्य नामक एक स्ट्रिंग भी है, हमें यह जांचना है कि लक्ष्य मैट्रिक्स में बाएं से दाएं, या अप-टू-डाउन यूनिडायरेक्शनल तरीके से पाया जा सकता है या नहीं।
तो, अगर इनपुट पसंद है
a | n | टी | s |
s | p | मैं | n |
l | a | p | s |
शब्द ="टिप"
तो आउटपुट ट्रू होगा, आप देख सकते हैं कि तीसरा कॉलम (ऊपर से नीचे) "टिप" बना रहा है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- बोर्ड में प्रत्येक i के लिए, do
- i :=i में मौजूद वर्णों से शब्द बनाएं
- यदि शब्द i में मौजूद है, तो
- सही लौटें
- मैं :=0
- जबकि मैं <बोर्ड की पंक्ति गणना करता हूं, करते हैं
- j :=बोर्ड में ith कॉलम के वर्णों से स्ट्रिंग बनाएं
- i :=i + 1
- यदि शब्द j में है, तो
- सही लौटें
- झूठी वापसी
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
def solve(board, word): for i in board: i = "".join(i) if word in i: return True i = 0 while i < len(board): j = "".join([col[i] for col in board]) i += 1 if word in j: return True return False board = [["a","n","t","s"],["s","p","i","n"],["l","a","p","s"]] word = "tip" print(solve(board, word))
इनपुट
[["a","n","t","s"], ["s","p","i","n"], ["l","a","p","s"]], "tip"
आउटपुट
True