आप ऐसे समाधान को नहीं ढूंढ पाएंगे जो ओ (एन) की तुलना में एक छोटी जटिलता है क्योंकि आपको इनपुट स्ट्रिंग के साथ सबसे खराब मामले में हर चरित्र को पार करने की आवश्यकता है जिसमें अधिकतम 0 या 1 लगातार सफेद जगह है, या पूरी तरह से सफेद जगह है।
हालांकि आप कुछ अनुकूलन कर सकते हैं, लेकिन इसे अभी भी ओ (एन) माना जाएगा।
उदाहरण के लिए:
Let एम अब तक के रूप में आप अपनी सूची के माध्यम से जाना वर्तमान सबसे लंबे समय तक मैच हो। यह भी मान लें कि आप ओ (1) में इनपुट तत्वों तक पहुंच सकते हैं, उदाहरण के लिए आपके पास इनपुट के रूप में एक सरणी है।
जब आप एक गैर-व्हाइटस्पेस देखते हैं तो आप एम तत्वों को छोड़ सकते हैं यदि current + M
गैर व्हाइटस्पेस है। निश्चित रूप से एम से अधिक लंबी जगह नहीं हो सकती है।
और जब आप एक व्हाइटस्पेस चरित्र देखते हैं, तो current + M-1
सफेद जगह नहीं है, आपको पता है कि आपके पास सबसे लंबा रन नहीं है जब आप उस मामले में भी जा सकते हैं।
स्रोत
2010-04-11 12:11:10
(-1) यह गलत है: आपको प्रत्येक चरित्र की जांच करने की आवश्यकता नहीं है। –
यदि स्ट्रिंग में केवल खाली वर्ण हैं, तो कृपया मुझे बताएं कि आप प्रत्येक चरित्र की जांच कैसे नहीं करेंगे। –
"कम से कम" के साथ आपका मतलब "सबसे अधिक" था, मुझे लगता है :) – Thomas