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

पायथन में जांचें कि मैट्रिक्स की सभी पंक्तियाँ एक-दूसरे की सर्कुलर रोटेशन हैं या नहीं

मान लीजिए, हमें n*n आकार का एक मैट्रिक्स प्रदान किया गया है, जिसमें पूर्णांक संख्याएँ हैं। हमें यह पता लगाना है कि उस मैट्रिक्स की सभी पंक्तियाँ उसकी पिछली पंक्ति की सर्कुलर रोटेशन हैं या नहीं। पहली पंक्ति के मामले में, यह n-वीं पंक्ति की सर्कुलर रोटेशन होनी चाहिए।

इसलिए, यदि इनपुट इस तरह है:

BADC
CBAD
DCBA
ADCB

तो आउटपुट True होगा।

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

  • concat := खाली स्ट्रिंग
  • i को 0 से पंक्तियों की संख्या तक के लिए, करें:
    • concat := concat + "-" + matrix[0,i]
  • concat := concat + concat
  • i को 1 से मैट्रिक्स के आकार तक के लिए, करें:
    • curr_row := खाली स्ट्रिंग
    • j को 0 से स्तंभों की संख्या तक के लिए, करें:
      • curr_row := curr_row + "-" + matrix[i,j]
    • यदि curr_row स्ट्रिंग concat में मौजूद है, तो:
      • True वापस करें
  • False वापस करें

उदाहरण

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

def solve(matrix):
    concat = ""
    for i in range(len(matrix)):
        concat = concat + "-" + str(matrix[0][i])
    concat = concat + concat
    for i in range(1, len(matrix)):
        curr_row = ""
        for j in range(len(matrix[0])):
            curr_row = curr_row + "-" + str(matrix[i][j])
        if (concat.find(curr_row) != -1):
            return True
    return False

matrix = [['B', 'A', 'D', 'C'],
          ['C', 'B', 'A', 'D'],
          ['D', 'C', 'B', 'A'],
          ['A', 'D', 'C', 'B']]
print(solve(matrix))

इनपुट

[['B', 'A', 'D', 'C'], ['C', 'B', 'A', 'D'], ['D', 'C', 'B', 'A'], ['A', 'D', 'C', 'B']]

आउटपुट

True
  1. पायथन में जांचें कि दो ट्री के सभी लेवल एनाग्राम हैं या नहीं पायथन में जांचें कि दो ट्री के सभी लेवल एनाग्राम हैं या नहीं

    मान लीजिए, हमें दो बाइनरी ट्री प्रदान किए गए हैं। हमें यह जांचना है कि एक बाइनरी ट्री का प्रत्येक लेवल दूसरे बाइनरी ट्री के उसी लेवल का एनाग्राम है या नहीं। यदि यह एनाग्राम है तो हम True वापस करते हैं, अन्यथा False वापस करते हैं। इसलिए, यदि इनपुट इस तरह है: तो आउटपुट True होगा। इसे हल करने के लिए

  1. - पायथन - जांचें कि लिस्ट में सभी तत्व समान हैं या नहीं

    कभी-कभी हमें यह जांचने की आवश्यकता होती है कि क्या लिस्ट में एक ही मान सभी तत्वों के रूप में दोहराया गया है। हम नीचे दिए गए पायथन प्रोग्राम का उपयोग करके ऐसे परिदृश्य की जांच कर सकते हैं। अलग-अलग दृष्टिकोण हैं। for लूप का उपयोग इस विधि में हम लिस्ट से पहला तत्व लेते हैं और पारंपरिक for लूप का उपयोग

  1. - पायथन प्रोग्राम: चेक करना कि दो दी गई मैट्रिक्स आइडेंटिकल हैं या नहीं

    यहां दो मैट्रिक्स दी गई हैं। दोनों मैट्रिक्स का ऑर्डर समान है। आइडेंटिकल होने के लिए दोनों मैट्रिक्स बराबर होनी चाहिए, दोनों मैट्रिक्स में पंक्तियों और कॉलम की संख्या समान होनी चाहिए और संबंधित एलिमेंट्स भी समान होने चाहिए।एल्गोरिदमचरण 1: दो मैट्रिक्स बनाएं। चरण 2: फिर पहली मैट्रिक्स और दूसरी मैट्रि