Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

जांचें कि कोई शब्द ग्रिड में मौजूद है या नहीं पायथन में

मान लीजिए, हमारे पास एक ग्रिड या शब्दों का एक मैट्रिक्स है। हमें यह जांचना है कि दिया गया शब्द ग्रिड में मौजूद है या नहीं। शब्द चार तरह से पाया जा सकता है, क्षैतिज रूप से बाएँ और दाएँ और लंबवत ऊपर और नीचे। अगर हम शब्द ढूंढ सकते हैं तो हम सही लौटते हैं, अन्यथा गलत।

तो, अगर इनपुट पसंद है

p g s f
y k g
टी k g मैं
n s j s
j f g
n r टी y यू

input_str ="पायथन", तो आउटपुट सही होगा।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • एक फ़ंक्शन परिभाषित करें find_grid() । यह मैट्रिक्स लेगा, input_str, row_pos, col_pos, row_count, col_count, Degree
    • यदि डिग्री input_str के आकार के समान है, तो
      • सही लौटें
    • अगर row_pos <0 या col_pos <0 या row_pos>=row_count या col_pos>=col_count, तो
      • झूठी वापसी
    • यदि मैट्रिक्स [row_pos, col_pos] input_str [डिग्री] के समान है, तो
      • अस्थायी:=मैट्रिक्स[row_pos, col_pos]
      • मैट्रिक्स के तत्वों को बदलें[row_pos, col_pos] को '#' से बदलें
      • परिणाम:=find_grid(मैट्रिक्स, input_str, row_pos-1, col_pos,
        • row_count, col_count, डिग्री + 1) बिटवाइज़ या
        • find_grid(मैट्रिक्स, input_str, row_pos + 1, col_pos, row_count,
        • col_count, डिग्री + 1) बिटवाइज़ या
        • find_grid(मैट्रिक्स, input_str, row_pos, col_pos - 1, row_count,
        • col_count, डिग्री + 1) बिटवाइज़ या
        • find_grid(matrix, input_str, row_pos, col_pos + 1, row_count, col_count, Degree + 1))
      • मैट्रिक्स के तत्वों को बदलें[row_pos, col_pos] अस्थायी के साथ
      • वापसी का परिणाम
    • अन्यथा,
      • झूठी वापसी
  • मुख्य कार्य/विधि से, निम्न कार्य करें -
  • यदि input_str> row_count * col_count की लंबाई है, तो
    • झूठी वापसी
  • 0 से लेकर row_count तक की पंक्ति के लिए, करें
    • 0 से लेकर col_count तक के कर्नल के लिए, करें
      • यदि मैट्रिक्स [पंक्ति, col] input_str[0] के समान है, तो
        • अगर (find_grid(matrix, input_str, row, col, row_count, col_count, 0) सही है), तो
          • सही लौटें
  • झूठी वापसी

उदाहरण

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

def find_grid(matrix, input_str, row_pos, col_pos, row_count, col_count, degree) :
   if (degree == len(input_str)) :
      return True
   if (row_pos < 0 or col_pos < 0 or row_pos >= row_count or col_pos >= col_count) :
      return Fals
   if (matrix[row_pos][col_pos] == input_str[degree]) :
      temp = matrix[row_pos][col_pos]
      matrix[row_pos].replace(matrix[row_pos][col_pos], "#")
      result = (find_grid(matrix, input_str, row_pos - 1, col_pos, row_count, col_count, degree + 1) |find_grid(matrix, input_str, row_pos + 1, col_pos, row_count, col_count, degree + 1) |find_grid(matrix, input_str, row_pos, col_pos - 1, row_count, col_count, degree + 1) |find_grid(matrix, input_str, row_pos, col_pos + 1, row_count, col_count, degree + 1))
      matrix[row_pos].replace(matrix[row_pos][col_pos], temp)
      return result
   else :
      return False
def solve(matrix, input_str, row_count, col_count) :
   if (len(input_str) > row_count * col_count) :
      return False
   for row in range(row_count) :
      for col in range(col_count) :
         if (matrix[row][col] == input_str[0]) :
            if (find_grid(matrix, input_str, row, col, row_count, col_count, 0)) :
               return True
   return False
word_grid = ["pghsf", "ykdgh", "tkghi", "hnsjs", "ojfgh", "nrtyu"]
print(solve(word_grid, "python", 6, 5))

इनपुट

["pghsf", "ykdgh", "tkghi", "hnsjs", "ojfgh", "nrtyu"],"python"

आउटपुट

True

  1. ढेर की जाँच करने का कार्यक्रम पायथन में अधिकतम ढेर बना रहा है या नहीं

    मान लीजिए कि हमारे पास ढेर के पेड़ का प्रतिनिधित्व करने वाली एक सूची है। जैसा कि हम जानते हैं कि हीप एक पूर्ण बाइनरी ट्री है। हमें यह जांचना है कि तत्व अधिकतम ढेर बना रहे हैं या नहीं। जैसा कि हम जानते हैं कि अधिकतम ढेर के लिए प्रत्येक तत्व अपने दोनों बच्चों से बड़ा होता है। इसलिए, यदि इनपुट nums =[

  1. जांचें कि क्या N एक डायहेड्रल प्राइम नंबर है या नहीं पायथन में

    मान लीजिए कि हमारे पास एक संख्या n है। हमें जांचना है कि n डायहेड्रल प्राइम है या नहीं। एक संख्या को डायहेड्रल प्राइम कहा जाता है जब वह संख्या स्वयं अभाज्य होती है और 7-सेगमेंट डिस्प्ले का उपयोग करके समान संख्या या कोई अन्य अभाज्य संख्या भी दिखाई जाती है, भले ही डिस्प्ले का ओरिएंटेशन (सामान्य या ऊपर

  1. सुडोकू ग्रिड को मान्य करने का कार्यक्रम पायथन में हल करने योग्य है या नहीं

    मान लीजिए हमारे पास एक 9×9 सुडोकू ग्रिड है। हमें यह देखना होगा कि यह वैध है या अभी। केवल भरे हुए कक्षों को निम्नलिखित नियमों के अनुसार सत्यापित करने की आवश्यकता है - प्रत्येक पंक्ति में बिना दोहराव के 1−9 के अंक होने चाहिए। प्रत्येक कॉलम में दोहराव के बिना 1−9 के अंक होने चाहिए। ग्रिड के 9