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