Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

वह समय ज्ञात कीजिए जो पैलिंड्रोमिक है और पायथन में दिए गए समय के बाद आता है

मान लीजिए कि हमारे पास एक स्ट्रिंग है जो 24 घंटे के प्रारूप में एचएच:एमएम के रूप में एक समय का प्रतिनिधित्व करती है ताकि एचएच 0 से 23 की सीमा में हो और एमएम 0 से 59 की सीमा में हो, हमें अगला निकटतम समय खोजना होगा जो एक है पैलिंड्रोम जब एक स्ट्रिंग के रूप में पढ़ा जाता है। अगर ऐसी कोई स्ट्रिंग नहीं है, तो -1 लौटें।

इसलिए, यदि इनपुट "22:22" जैसा है, तो आउटपुट "23:32" होगा।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • n :=s का आकार

  • घंटा_स्ट्रिंग :=s का सबस्ट्रिंग [सूचकांक 0 से 2 तक]

  • मिनट:=s का सबस्ट्रिंग [सूचकांक 3 से 5 तक] और इसे पूर्णांक में बदलें

  • rev_hour :=घंटा_स्ट्रिंग को उलट दें और इसे संख्या में बदलें

  • rev_hr_str :=घंटा_स्ट्रिंग का उलटा

  • h :=hour_string पूर्णांक के रूप में

  • अस्थायी:=रिक्त स्ट्रिंग, रेस:=रिक्त स्ट्रिंग

  • यदि h 23 है और मिनट>=32 है, तो

    • रेस :=-1

  • अन्यथा जब मिनट

    • अगर एच <10, तो

      • अस्थायी:="0"

    • अस्थायी:=अस्थायी रूप से एच

    • अगर rev_hour <10, तो

      • res:=res concatenate temp concatenate ":0" concatenate rev_hr_str

    • अन्यथा,

      • res:=res concatenate temp concatenate ":" concatenate rev_hr_str

  • अन्यथा,

    • एच:=एच + 1

    • rev_hr_str :=h का स्ट्रिंग के रूप में उल्टा करना

    • Rev_hour :=h का उल्टा

    • अगर एच <10, तो

      • अस्थायी:="0"

    • अस्थायी:=अस्थायी रूप से एच

    • अगर rev_hour <10, तो

      • res:=res concatenate temp concatenate ":0" concatenate rev_hr_str

    • अन्यथा,

      • res:=res concatenate temp concatenate ":" concatenate rev_hr_str

  • रिटर्न रेस

उदाहरण

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

def get_next_palindrome_time(s) :
   n = len(s)
   hour_string = s[0 : 2]
   minute = int(s[3 : 5])
   rev_hour = int(hour_string[::-1])
   rev_hr_str = hour_string[::-1]
   h = int(hour_string)
   temp = ""
   res = ""
   if (h == 23 and minute >= 32) :
      res = "-1"
   elif (minute < rev_hour) :
      if (h < 10) :
         temp = "0"
      temp = temp + str(h)
      if (rev_hour < 10) :
         res = res + temp + ":0" + rev_hr_str
      else :
         res = res + temp + ":" + rev_hr_str
   else :
      h += 1
      rev_hr_str = str(h)[::-1]
      rev_hour = int(rev_hr_str)
      if (h < 10) :
         temp = "0"
      temp = temp + str(h)
      if (rev_hour < 10) :
         res = res + temp + ":0" + rev_hr_str
      else :
         res = res + temp + ":" + rev_hr_str
return res
s = "22:22"
print(get_next_palindrome_time(s))

इनपुट

"22:22"

आउटपुट

23:32

  1. लेक्सिकोग्राफिक रूप से सबसे छोटी स्ट्रिंग खोजें जो पायथन में दी गई शर्त को पूरा करती है

    मान लीजिए कि हमारे पास n संख्याओं की एक सरणी A है, जहां A[i] एक स्ट्रिंग s की लंबाई (i + 1) के उपसर्ग में अलग-अलग वर्णों की संख्या को इंगित करता है, हमें यह करना होगा दी गई उपसर्ग सरणी को संतुष्ट करने वाली लेक्सिकोग्राफिक रूप से सबसे छोटी स्ट्रिंग खोजें। सभी अक्षर लोअरकेस अंग्रेजी अक्षर [a-z] होंगे।

  1. उस तत्व का पता लगाएं जिसके पहले सभी तत्व उससे छोटे हैं, और उसके बाद पायथन में सभी बड़े हैं

    मान लीजिए कि हमारे पास एक सरणी है, हमें एक ऐसा तत्व खोजना है जिसके पहले सभी तत्व इससे कम हों, और उसके बाद सभी इससे बड़े हों। अंत में, तत्व का सूचकांक लौटाएँ, यदि ऐसा कोई तत्व नहीं है, तो -1 लौटाएँ। इसलिए, यदि इनपुट A - [6, 2, 5, 4, 7, 9, 11, 8, 10] जैसा है, तो आउटपुट 4 होगा। इसे हल करने के लिए, हम

  1. पायथन में दिए गए स्ट्रिंग के सभी विशिष्ट पैलिंड्रोमिक उप-स्ट्रिंग खोजें

    मान लीजिए कि हमारे पास ASCII वर्णों के साथ एक स्ट्रिंग है, हमें इसके सभी अलग-अलग निरंतर पैलिंड्रोमिक सबस्ट्रिंग खोजने होंगे। इसलिए, यदि इनपुट bddaaa जैसा है, तो आउटपुट [a, aa, aaa, b, d, dd] होगा। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - m :=एक नया नक्शा n :=आकार का मैट्रिक्स :=n संख्या