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

पायथन में लिस्ट ढूंढना जो इंडेक्स पर कैरेक्टर c की निकटतम दूरी दिखाती है


मान लीजिए हमारे पास एक स्ट्रिंग s और एक और कैरेक्टर c है, c, s में मौजूद होना चाहिए, हमें एक लिस्ट ढूंढनी है जिसकी लंबाई s की लंबाई के समान हो जहां प्रत्येक इंडेक्स i के लिए इसका मान s[i] से c की निकटतम दूरी पर सेट हो।

उदाहरण के लिए, यदि इनपुट है s = "ppqppq", c = "q", तो आउटपुट होगा [2, 1, 0, 1, 1, 0]।

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

बाएं से दाएं स्कैन करें, अंतिम देखे गए c के इंडेक्स को ट्रैक करें। प्रत्येक पोजीशन के लिए, वर्तमान c से दूरी की गणना करें और पिछले c से दूरी के साथ न्यूनतम अपडेट करें।

  • j = len(s), d = [j-1] * j, x = s.index(c) आरंभ करें।
  • प्रत्येक i के लिए 0 से j-1 तक:
    • यदि s[i] == c और i > x, तो x = i अपडेट करें और पिछले इंडेक्स के लिए पीछे की ओर दूरी अपडेट करें।
    • d[i] = abs(x - i) सेट करें।
  • d लौटाएं।

पायथन कार्यान्वयन

def solve(s, c):
    j = len(s)
    d = [j - 1] * j
    x = s.index(c)
    for i in range(j):
        if s[i] == c and i > x:
            x = i
            ind = 1
            while True:
                if d[x - ind] > ind:
                    d[x - ind] = ind
                else:
                    break
                ind += 1
        d[i] = abs(x - i)
    return d

s = "ppqppq"
c = "q"
print(solve(s, c))

इनपुट

"ppqppq", "q"

आउटपुट

[2, 1, 0, 1, 1, 0]

  1. - Python में सूची से तीन अद्वितीय एलिमेंट जिनका योग k के सबसे करीब है, खोजने का प्रोग्राम

    मान लीजिए हमारे पास nums नामक संख्याओं की एक सूची और एक मान k है, हमें nums में तीन अद्वितीय प्रविष्टियाँ (a, b, c) ढूंढनी हैं जैसे कि |a + b + c - k| न्यूनतम हो और निरपेक्ष अंतर लौटाना है। तो, यदि इनपुट nums = [2, 5, 25, 6], k = 14 जैसा है, तो आउटपुट 1 होगा क्योंकि यदि हम [2, 5, 6] लेते हैं तो हम

  1. - पायथन में स्ट्रिंग्स की सूची से सबसे लंबा सामान्य उपसर्ग खोजने का प्रोग्राम

    मान लीजिए हमारे पास लोअरकेस स्ट्रिंग्स की एक सूची है, हमें सबसे लंबा सामान्य उपसर्ग ढूंढना है। उदाहरण के लिए, यदि इनपुट [antivirus, anticlockwise, antigravity] है, तो आउटपुट anti होगा। इसे हल करने के लिए हम निम्न चरणों का पालन करेंगे: words सूची को वर्णमाला क्रम में क्रमबद्ध करें prefix := एक नई स

  1. - पायथन प्रोग्राम सूची से N सबसे बड़े तत्व खोजने के लिए

    एक पूर्णांक सूची दी गई है, हमारा कार्य सूची में N सबसे बड़े तत्व ढूंढना है। उदाहरण इनपुट : [40, 5, 10, 20, 9] N = 2 आउटपुट: [40, 20] एल्गोरिदम चरण 1: एक पूर्णांक सूची और सबसे बड़ी संख्या की संख्या इनपुट करें। चरण 2: पहले सूची को N बार पार करें। चरण 3: प्रत्येक पारगमन में सबसे बड़ा मान ढूंढें और इसे