फंक्शन ब्लॉक SIMILAR_TEXT

फंक्शन ब्लॉक SIMILAR_TEXT दो स्ट्रिंग्स की समानता का गणना करता है।

दो स्ट्रिंग्स की समानता का गणना Programming Classics: Implementing the World's Best Algorithms by Oliver (ISBN 0-131-00413-1) में वर्णित विधि के अनुसार किया जाता है। ध्यान दें कि इस कार्यान्वयन में ओलिवर की प्स्यूडो-कोड में उपयोग किए गए स्टैक का उपयोग नहीं किया गया है, लेकिन रिकर्सिव कॉल का उपयोग किया गया है जो प्रदर्शन को बढ़ा सकता है (लेकिन आवश्यक नहीं है)। ध्यान दें कि इस एल्गोरिदम की जटिलता O(N³) है, जहां N सबसे लंबी स्ट्रिंग की लंबाई है।

इनपुट STR1

इनपुट पहली स्ट्रिंग को परिभाषित करता है जो तुलना की जानी चाहिए।

इनपुट STR2

इनपुट दूसरी स्ट्रिंग को परिभाषित करता है जो तुलना की जानी चाहिए।

आउटपुट SIM

आउटपुट दोनों स्ट्रिंग्स में मिलान करने वाले अक्षरों की संख्या लौटाता है।

मिलान करने वाले अक्षरों की संख्या का गणना करके किया जाता है कि सबसे लंबी पहली सामान्य उप-स्ट्रिंग ढूंढी जाती है और फिर प्रीफिक्स और सफिक्स के लिए रिकर्सिव रूप से दोहराया जाता है। सभी पाए गए सामान्य उप-स्ट्रिंग्स की लंबाइयों को जोड़ा जाता है।

आउटपुट PERCENT

आउतपुट समानता को प्रतिशत मान के रूप में फ्लोटिंग-पॉइंट नंबर के रूप में लौटाता है। इसके लिए परिणाम को निर्दिष्ट स्ट्रिंग्स की लंबाइयों के औसत से विभाजित किया जाता है और 100 से गुणा किया जाता है।