मान लीजिए हमारे पास एक मैट्रिक्स कैरेक्टर बोर्ड है। जहां प्रत्येक सेल एक वर्ण धारण कर रहा है। हमारे पास target नामक एक स्ट्रिंग भी है, हमें जांचना है कि क्या target मैट्रिक्स में बाएं-से-दाएं, या ऊपर-से-नीचे एकदिशात्मक तरीके से पाया जा सकता है या नहीं।
इसलिए, यदि इनपुट है:
| a | n | t | s |
| s | p | i | n |
| l | a | p | s |
शब्द = "tip"
तो आउटपुट होगा True, आप देख सकते हैं कि तीसरा कॉलम (ऊपर से नीचे) "tip" बना रहा है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे:
boardमें प्रत्येकiके लिए, करें:i :=iमें मौजूद वर्णों से शब्द बनाएं- यदि शब्द
iमें मौजूद है, तो:Trueलौटाएं
i := 0- जब
i < boardकी पंक्ति संख्या, करें:j :=बोर्ड मेंiवें कॉलम के वर्णों से स्ट्रिंग बनाएंi := i + 1- यदि शब्द
jमें है, तो:Trueलौटाएं
Falseलौटाएं
उदाहरण
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
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