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

विपर्यय पैटर्न खोज


विपर्यय मूल रूप से किसी दिए गए स्ट्रिंग या पैटर्न के सभी क्रमपरिवर्तन हैं। यह पैटर्न खोज एल्गोरिथ्म थोड़ा अलग है। इस मामले में, न केवल सटीक पैटर्न की खोज की जाती है, यह पाठ में दिए गए पैटर्न की सभी संभावित व्यवस्थाओं को खोजता है।

इस समस्या को हल करने के लिए, हम पूरे पाठ को पैटर्न के समान लंबाई की कई खिड़कियों में विभाजित करेंगे। फिर पैटर्न के प्रत्येक वर्ण पर गिनें पाया जाता है और एक सरणी में संग्रहीत किया जाता है। प्रत्येक विंडो के लिए, हम गिनती सरणी खोजने का भी प्रयास करते हैं, फिर जांचते हैं कि वे मेल खाते हैं या नहीं।

एनाग्राम पैटर्न सर्च एल्गोरिथम की समय जटिलता O(n) है।

इनपुट और आउटपुट

इनपुट:मुख्य स्ट्रिंग "आबाकबक्काबाबा"। पैटर्न "एएबीसी"। आउटपुट:स्थिति में मिला एनाग्राम:स्थिति में 2 एनाग्राम मिला:स्थिति पर 3 एनाग्राम मिला:4 एनाग्राम स्थिति में मिला:10

एल्गोरिदम

एनाग्रामसर्च(टेक्स्ट, पैटर्न)

इनपुट - मुख्य स्ट्रिंग और पैटर्न

आउटपुट - सभी स्थान जहां पैटर्न और उसके सभी विपर्यय पाए जाते हैं।

पैटर्नफ़्रेक सरणी और स्ट्रिंगफ़्रेक सरणी को परिभाषित करना शुरू करें patLne:=पैटर्न की लंबाई stringLen:=टेक्स्ट की लंबाई पैटर्न में मौजूद सभी वर्णों के लिए patternFreq सरणी की सभी प्रविष्टियों को 0 पर सेट करें, आवृत्ति में वृद्धि करें। i के लिए किया गया:=0 से i<=stringLen - patLen, प्रत्येक विंडो के सभी वर्णों के लिए stringFreq की सभी प्रविष्टियों को 0 पर सेट करें, यदि स्ट्रिंगफ़्रीक और पैटर्नफ़्रीक समान हैं, तो आवृत्ति में वृद्धि करें, फिर i का मान प्रदर्शित करें, जैसा कि विपर्यय उस स्थान पर पाया गया हो गयाअंत

उदाहरण

#शामिल करें (सरणी 1 [i]! =सरणी 2 [i]) झूठी वापसी; // अगर एक बेमेल काम करना बंद कर देता है } सच हो जाता है; // सरणियाँ समान हैं} शून्य सेटअरे (int * array, int n, int value) { for(int i =0; i 

आउटपुट

विपरीत स्थिति में मिला:2Anagram स्थिति में मिला:3Anagram स्थिति में मिला:4Anagram स्थिति में मिला:10

  1. इष्टतम बाइनरी सर्च ट्री

    पूर्णांकों का एक सेट क्रमबद्ध क्रम में दिया गया है और एक अन्य सरणी freq आवृत्ति गणना के लिए दिया गया है। हमारा काम सभी खोजों के लिए न्यूनतम लागत खोजने के लिए उन डेटा के साथ एक बाइनरी सर्च ट्री बनाना है। उप-समस्याओं के समाधान को हल करने और संग्रहीत करने के लिए एक सहायक सरणी लागत [एन, एन] बनाई गई है।

  1. डेटा संरचनाओं में इष्टतम बाइनरी सर्च ट्री

    पूर्णांकों का एक सेट क्रमबद्ध क्रम में दिया जाता है और आवृत्ति गणना के लिए एक और सरणी फ़्रीक दिया जाता है। हमारा काम सभी खोजों के लिए न्यूनतम लागत खोजने के लिए उन डेटा के साथ एक बाइनरी सर्च ट्री बनाना है। उप समस्याओं के समाधान को हल करने और संग्रहीत करने के लिए एक सहायक सरणी लागत [एन, एन] बनाई गई ह

  1. एनाग्राम सबस्ट्रिंग सर्च के लिए पायथन प्रोग्राम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - एक टेक्स्ट और एक पैटर्न को देखते हुए, हमें टेक्स्ट में पैटर्न और उसके क्रमपरिवर्तन (या विपर्यय) की सभी घटनाओं को प्रिंट करना होगा। आइए अब नीचे दिए गए कार्यान्वयन में समाधान देखें - उदाहरण # maximum value MAX = 300 #