से तार का एक सबसेट रिटर्निंग मेरे कॉलेज खत्म हो रही है तो मैं साक्षात्कार के लिए तैयारी कर नौकरी पाने के लिए शुरू कर दिया और मैं जब तक मैं साक्षात्कार10000 ascii तार
के लिए तैयारी कर रहा था इस साक्षात्कार प्रश्न में आए
- आपके पास 10000 एसीआई स्ट्रिंग्स (फ़ाइल से लोड किया गया) का सेट है
- स्ट्रिंग से एक स्ट्रिंग इनपुट है।
- एक स्यूडोकोड लिखें जो (1) में स्ट्रिंग्स के एक सबसेट (stdout) को लौटाता है जिसमें इनपुट (2) के रूप में समान वर्ण (ऑर्डर के बावजूद) होते हैं। समय के लिए अनुकूलित करें।
- मान लें कि इस फ़ंक्शन को बार-बार उपयोग करने की आवश्यकता होगी। एक बार स्ट्रिंग सरणी शुरू करना और स्मृति में संग्रहीत करना ठीक है। कृपया उन समाधानों से बचें जिन्हें सभी 10000 तारों के माध्यम से लूपिंग की आवश्यकता होती है।
किसी को भी मुझे एक सामान्य स्यूडोकोड/एल्गोरिथ्म बात की है कि कैसे इस समस्या को हल करने प्रकार प्रदान कर सकते हैं? मैं समाधान के बारे में सोचने के लिए अपने सिर खरोंच कर रहा हूँ। मैं ज्यादातर जावा से परिचित हूं।
अच्छा, इसे तोड़ दें। यहाँ क्या महत्वपूर्ण है? कौन सी तारों में इनपुट स्ट्रिंग के समान वर्ण होते हैं। तो सीधा (हालांकि जरूरी नहीं है) दृष्टिकोण 10000 तारों में से प्रत्येक को एक स्ट्रिंग में बदलना होगा जिसमें केवल उनके विशिष्ट वर्ण हों। फिर इनपुट स्ट्रिंग के लिए वही करें, और आखिरकार यह पता लगाएं कि 10000 स्ट्रिंग्स में से कौन सा मैच है। इस तरह के "ट्रांसफॉर्म" का पता लगाने के साथ-साथ वास्तव में "मैच" को कैसे करना है मजेदार हिस्सा है। और वहां से, शायद आप एक अधिक आविष्कारक, तेज समाधान के बारे में सोच सकते हैं। – dlev
एक डेटा संरचना तैयार करें जो तारों की सूची में विशिष्ट वर्णों को मैप कर सकती है (हैश तालिका, पहुंच 'ओ (1) 'है)। एक बार आपके पास उस डेटा संरचना के बाद, शेष छोटा होता है। –
कृपया उन समाधानों से बचें जिनके लिए सभी 10000 तारों के माध्यम से लूपिंग की आवश्यकता है - आपको इसे तोड़ने के लिए खेद है, लेकिन यह जानने के लिए कि कौन से वर्ण स्ट्रिंग में हैं, आपको कम से कम एक बार उन्हें लूप करना होगा। आप बार-बार पहुंच के लिए अनुकूलित कर सकते हैं। –