हमारे पास एक भाषा एक्स है, जिसमें एक बाइट और दो बाइट वर्ण हैं। इस भाषा में निम्नलिखित विशेषताएं हैं।साक्षात्कार प्रश्न: किसी दिए गए स्ट्रिंग में अगला और पिछला वर्ण ढूंढना?
- एकल बाइट वर्ण मूल्य हमेशा से कम या दो बाइट वर्ण में 127.
- के बराबर होगा, सबसे पहले बाइट हमेशा अधिक से अधिक से अधिक 127 और दूसरी बाइट मूल्य कुछ भी हो सकता हो जाएगा।
समस्या यह है कि हमें स्ट्रिंग में कुछ बाइट को इंगित करने के लिए एक मनमाना लंबाई स्ट्रिंग और पॉइंटर दिया जाता है और हमें यह पता लगाना होगा कि पिछले चरित्र क्या है और अगला चरित्र क्या है।
एक सरल दृष्टिकोण स्ट्रिंग की शुरुआत से शुरू होगा, बाइट के मूल्य की जांच करेगा और पॉइंटर्स की तुलना तब तक करेगा जब तक हम दिए गए पॉइंटर तक नहीं पहुंच जाते। लेकिन सबसे बुरी स्थिति में, यदि दिया गया सूचक, दिए गए स्ट्रिंग में अंतिम बाइट इंगित करता है, तो हमें सभी charaters के माध्यम से लूप करना होगा।
मुझे पता है कि कोई बेहतर एल्गोरिदम है जो स्ट्रिंग की लंबाई के बावजूद निरंतर समय में परिणाम देगा?
127 से भी कम करने के लिए सूचक है? क्या आपका मतलब "कम या 127 के बराबर नहीं है"? –
हाँ आप सही हैं – raj
वैकल्पिक शीर्षक: क्यों यूटीएफ -8 शिफ्ट-जेस से बेहतर है;)। –