मान लीजिए, हमें n*n आकार का एक मैट्रिक्स दिया गया है, जिसमें पूर्णांक संख्याएँ हैं। हमें यह पता लगाना है कि क्या उस मैट्रिक्स की सभी पंक्तियाँ उसकी पिछली पंक्ति के वृत्ताकार घूर्णन हैं। पहली पंक्ति के मामले में, यह n-वें पंक्ति का एक गोलाकार घुमाव होना चाहिए।
तो, अगर इनपुट पसंद है
बी | ए | डी | सी |
सी | बी | ए | डी |
डी | सी | बी | ए |
ए | डी | सी | बी |
तो आउटपुट ट्रू होगा।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- concat :=रिक्त स्ट्रिंग
- i के लिए 0 से लेकर पंक्तियों की संख्या तक, करें
- concat :=concatate concatenate "-" concatenate matrix[0,i]
- concat :=concatate concatenate concat
- i श्रेणी 1 से मैट्रिक्स के आकार के लिए, करें
- curr_row :=रिक्त स्ट्रिंग
- जे के लिए 0 से लेकर स्तंभों की संख्या तक, करें
- curr_row :=curr_row concatenate "-" concatenate matrix[i,j]
- यदि curr_row स्ट्रिंग कॉनकैट में मौजूद है, तो
- सही लौटें
- झूठी वापसी
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
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)) : 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