मैं दो तारों के बीच समानता खोजने के लिए लेवेनशेटिन एल्गोरिदम का उपयोग कर रहा हूं। यह प्रोग्राम जो मैं बना रहा हूं उसका एक बहुत ही महत्वपूर्ण हिस्सा है, इसलिए इसे प्रभावी होने की आवश्यकता है।स्ट्रिंग समानता -> लेवेनशेटिन दूरी
CONAIR
AIRCON
एल्गोरिथ्म तो 6 अक्षरों के इस शब्द के लिए 6. की दूरी दे देंगे (: समस्या यह है कि एल्गोरिथ्म निम्न उदाहरण समान रूप नहीं मिल रहा है है आप उच्चतम अक्षरों वाले शब्द को देखते हैं), अंतर 100% => समानता 0% है।
मुझे दो स्ट्रिंग के बीच समानताएं खोजने के लिए एक रास्ता खोजने की आवश्यकता है, लेकिन मैंने पहले प्रस्तुत किए गए मामलों जैसे मामलों को भी ध्यान में रखा है।
क्या कोई बेहतर एल्गोरिदम मैं उपयोग कर सकता हूं? या आप लोग मुझे क्या सलाह देते हैं?
संपादित करें: मैंने "डेमरौ-लेवेनशेटिन" एल्गोरिदम में भी देखा है, जो पारदर्शिता जोड़ता है। समस्या यह है कि यह पारदर्शिता केवल आसन्न वर्णों के लिए हैं (और कई पात्रों के लिए नहीं)।
इससे पहले कि आप स्ट्रिंग दूरी एल्गोरिदम को समझ सकें, आपको स्पष्ट रूप से परिभाषित करने की आवश्यकता है कि आपको किस तरह के परिवर्तन स्वीकार्य हैं। इन तारों को दो यादृच्छिक 6-अक्षर तारों से एक दूसरे के समान समान बनाता है? क्या आप इसे इस तरह से व्यक्त कर सकते हैं कि आप एक स्ट्रिंग से दूसरी तरफ 'हिल चढ़ाई' कर सकते हैं, प्रत्येक चरण को और अधिक समान बना सकते हैं? –