मान लीजिए कि हमारे पास क्रमबद्ध वर्णों के अक्षरों की एक सूची है। इसमें केवल लोअरकेस अक्षर हैं, अब हमारे पास एक लक्ष्य अक्षर t है, हमें सूची में सबसे छोटा तत्व ढूंढना है जो दिए गए लक्ष्य से बड़ा है।
और पत्र भी चारों ओर लपेटते हैं। इसलिए, यदि लक्ष्य t ='z' और अक्षर =['a', 'b'] है, तो उत्तर 'a' है।
इसलिए, यदि इनपुट ["c", "f", "j"], t ='a' जैसा है, तो आउटपुट 'c' होगा।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- एल :=0
- r :=अक्षरों का आकार - 1
- जबकि l <=r, करते हैं
- मध्य :=(l + r) / 2 पूर्णांक के रूप में
- यदि अक्षर[मध्य]> लक्ष्य है, तो
- r :=मध्य -1
- अन्यथा,
- l :=मध्य + 1
- वापसी पत्र[l आधुनिक अक्षरों का आकार]
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
class Solution: def nextGreatestLetter(self, letters, target): l = 0 r = len(letters) - 1 while l <= r: mid = (l + r)//2 if letters[mid] > target: r = mid -1 else: l = mid + 1 return letters[l % len(letters)] ob = Solution() print(ob.nextGreatestLetter(["c", "f", "j"], "a"))
इनपुट
["c", "f", "j"], "a"
आउटपुट
c