কম্পিউটার টিউটোরিয়াল

পাইথনে দুটি স্ট্রিংয়ের মাঝপথে লেক্সিকোগ্রাফিক্যালি একটি স্ট্রিং খুঁজুন


मान लीजिए हमारे पास दो स्ट्रिंग्स S और T हैं, हमें जांचना है कि क्या उसी लंबाई की एक स्ट्रिंग है जो लेक्सिकोग्राफिकली S से बड़ी और T से छोटी है। यदि ऐसी कोई स्ट्रिंग उपलब्ध नहीं है तो -1 लौटाएं। ध्यान रखें कि S = S1S2...Sn को T = T1T2...Tn से लेक्सिकोग्राफिकली कम कहा जाता है, बशर्ते एक i मौजूद हो, जैसे कि S1=T1, S2=T2, ... Si-1=Ti-1, Si < Ti।

यदि इनपुट S = "bbb" और T = "ddd" जैसा है, तो आउटपुट "bbc" होगा।

इसे हल करने के लिए हम निम्नलिखित चरणों का पालन करेंगे:

  • n := स्ट्रिंग का आकार
  • i को n-1 से 0 तक 1 घटाकर, करें:
    • यदि string[i] 'z' के समान नहीं है, तो
      • k := ASCII(string[i])
      • string[i] := ASCII(k+1) से वर्ण
      • स्ट्रिंग के वर्णों को जोड़कर लौटाएं
    • string[i] := 'a'

उदाहरण

बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:

def find_next(string):
    n = len(string)
    for i in range(n - 1, -1, -1):
        if string[i] != 'z':
            k = ord(string[i])
            string[i] = chr(k + 1)
            return ''.join(string)
        string[i] = 'a'

S = "bbb"
T = "ddd"
S = list(S)
res = find_next(S)
if res != T:
    print(res)
else:
    print(-1)

इनपुट

"bbb", "ddd"

आउटपुट

bbc

  1. দুই স্ট্রিং থেকে অনকমন ওয়ার্ড বের করার পাইথন প্রোগ্রাম

  2. পাইথন কোড: দুটি স্ট্রিং-এর কমন ক্যারেক্টার অ্যালফাবেটিকেল অর্ডারে প্রিন্ট করা

  3. পাইথনে স্ট্রিংয়ের সকল সম্ভাব্য পারমুটেশন বের করা

  4. পাইথনে দুটি স্ট্রিং জড়িয়ে একটিতে রূপান্তর করা