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

पायथन में दिए गए समय के बाद आने वाला पालिंड्रोमिक समय खोजें


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

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

समाधान दृष्टिकोण

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

  • 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 := ""
  • यदि h == 23 और minute >= 32, तो res := "-1"
  • अन्यथा यदि minute < rev_hour:
    • यदि h < 10, तो temp := "0"
    • temp := temp + str(h)
    • यदि rev_hour < 10, तो res := res + temp + ":0" + rev_hr_str
    • अन्यथा, res := res + temp + ":" + rev_hr_str
  • अन्यथा:
    • h := h + 1
    • rev_hr_str := str(h)[::-1]
    • rev_hour := int(rev_hr_str)
    • यदि h < 10, तो temp := "0"
    • temp := temp + str(h)
    • यदि rev_hour < 10, तो res := res + temp + ":0" + rev_hr_str
    • अन्यथा, res := res + temp + ":" + rev_hr_str
  • res लौटाएं।

उदाहरण

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

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. - Python - दी गई स्ट्रिंग के सभी विशिष्ट पैलिंड्रोमिक सबस्ट्रिंग्स ढूंढना

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