मैं एक एल्गोरिदम खोज रहा हूं जो तारों का एक वेक्टर v1
ले जाएगा और तारों का एक समान वेक्टर v2
लौटाएगा जहां प्रत्येक स्ट्रिंग कम से कम है x
वर्ण लंबे और अद्वितीय हैं। v1
में तार अद्वितीय नहीं हो सकते हैं।मैं स्ट्रिंग्स की सूची को विशिष्ट रूप से कैसे छोटा कर सकता हूं ताकि वे अधिकतम x वर्णों में लंबे समय तक
जबकि मुझे v1
में एएससीआईआईआई को स्वीकार करने की आवश्यकता है, तो मैं नए वर्णों को सम्मिलित करने के दौरान केवल अल्फान्यूमेरिक वर्ण ([A-Za-z0-9]
) डालना पसंद करूंगा।
जाहिर है कि यहां तीन चेतावनियां हैं:
v1
औरx
के कुछ मूल्यों के लिए, कोई संभव अद्वितीयv2
है। उदाहरण के लिए, जबv1
में 37 तत्व औरx == 1
हैं।प्रश्न में निर्दिष्ट जैसा "समान" व्यक्तिपरक है। तार उपयोगकर्ता का सामना करेंगे, और संभवतः लघु प्राकृतिक भाषा वाक्यांश (उदाहरण के लिए "रंगों की संख्या")। मैं चाहता हूं कि एक इंसान जितनी जल्दी हो सके छोटी स्ट्रिंग में मूल को मैप करने में सक्षम हो। इसका मतलब है कि disemvoweling जैसे हेरिस्टिक का लाभ लेना। क्योंकि संभवत: मेरे समानता निर्माण का कोई उद्देश्य उपाय नहीं है (स्ट्रिंग दूरी शायद यहां सबसे उपयोगी नहीं होगी, हालांकि यह हो सकती है) अच्छा होने पर मेरा निर्णय मनमाना होगा। विधि अंग्रेजी के लिए उपयुक्त होनी चाहिए - अन्य भाषाएं अप्रासंगिक हैं।
जाहिर है यह एक (प्रोग्रामिंग) भाषा-नास्तिक समस्या है, लेकिन मैं अजगर में क्रियान्वयन की दिशा में अनुकूल लग रही है चाहते हैं (क्योंकि मैं अपने स्ट्रिंग प्रसंस्करण भाषा सीधी-सपाट लगता है)।
क्या मतलब है 'मैं केवल अक्षर वर्ण ([ए-ज़ा-जे 0-9]) डालना पसंद करता हूं जब नए अक्षरों को सम्मिलित करना आवश्यक होता है।' – jamylak
यह एक दिलचस्प समस्या की तरह लगता है, लेकिन मैं वास्तव में यह देखने के लिए संघर्ष कर रहा हूं कि आप क्या पूछ रहे हैं। क्या आपको लगता है कि आप इनपुट और वांछित आउटपुट का एक बहुत ही सरल उदाहरण प्रदान कर सकते हैं? –
इसके अलावा, हम किस बारे में "शॉर्टिंग" की बात कर रहे हैं? रंगों की संख्या -> clrs के nmbr, या रंगों की संख्या -> एन ओ सी? –