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

Python में डिक्रिप्टेड स्ट्रिंग का k-th वर्ण ढूंढना - सेट-2


मान लीजिए हमारे पास एक एन्कोडेड स्ट्रिंग है जहां उपस्ट्रिंग के दोहराव को उपस्ट्रिंग के बाद उपस्ट्रिंग की गिनती के रूप में दर्शाया गया है। उदाहरण के लिए, यदि स्ट्रिंग "pq2rs2" है और k=5, तो आउटपुट 'r' होगा, क्योंकि डिक्रिप्टेड स्ट्रिंग "pqpqrsrs" है और 5वां वर्ण 'r' है। हमें इस बात का ध्यान रखना है कि एन्क्रिप्टेड उपस्ट्रिंग की आवृत्ति एक से अधिक अंक की हो सकती है।

तो, यदि इनपुट स्ट्रिंग = "pq4r2ts3" और k = 11 की तरह है, तो आउटपुट t होगा, क्योंकि स्ट्रिंग pqpqpqpqrrtststs है।

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

  • encoded := खाली स्ट्रिंग

  • occurrence := 0, i := 0

  • जब i < str का आकार, करें

    • temp := खाली स्ट्रिंग

    • occurrence := 0

  • जब i < str का आकार और str[i] एक वर्णमाला है, करें

    • temp := temp + str[i]

    • i := i + 1

  • जब i < str का आकार और str[i] एक अंक है, करें

    • occurrence := occurrence * 10 + ASCII of (str[i]) - ASCII of ('0')

    • i := i + 1

  • j के लिए 1 से occurrence + 1 की सीमा में, 1 से बढ़ाएं, करें

    • encoded := encoded + temp

  • यदि occurrence, 0 के समान है, तो

    • encoded := encoded + temp

  • encoded[k - 1] वापस करें

उदाहरण

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

def find_kth_char(str, k):     encoded = ""     occurrence = 0     i = 0     while i < len(str):         temp = ""         occurrence = 0         while (i < len(str) and ord(str[i]) >= ord('a') and ord(str[i]) <= ord('z')):             temp += str[i]             i += 1         while (i < len(str) and ord(str[i]) >= ord('1') and ord(str[i]) <= ord('9')):             occurrence = occurrence * 10 + ord(str[i]) - ord('0')             i += 1         for j in range(1, occurrence + 1, 1):             encoded += temp     if occurrence == 0:         encoded += temp     return encoded[k - 1] str = "pq4r2ts3" k = 11 print(find_kth_char(str, k))

इनपुट

"pq4r2ts3", 11

आउटपुट

t

  1. - Python में स्ट्रिंग को सेट में कैसे बदलें?

    Python की स्टैंडर्ड लाइब्रेरी में बिल्ट-इन फंक्शन `set()` होता है जो किसी इटरेबल को सेट में बदलता है। एक सेट ऑब्जेक्ट में दोहराए गए आइटम नहीं होते। इसलिए, यदि स्ट्रिंग में कोई कैरेक्टर एक से अधिक बार आता है, तो वह कैरेक्टर सेट ऑब्जेक्ट में केवल एक बार दिखाई देता है। फिर, कैरेक्टर्स उसी क्रम में नही

  1. - Python में String में Substring की nth Occurrence कैसे Find करें?

    Substring की nth Occurrence Find करना आप Substring पर Max n+1 Splits के साथ Split करके String में Substring की nth Occurrence Find कर सकते हैं। यदि Resulting List का Size n+1 से Greater है, तो इसका मतलब है कि Substring n से अधिक बार Occur होती है। इसका Index Simple Formula से पाया जा सकता है: Origi

  1. - पायथन में स्ट्रिंग में सबस्ट्रिंग की अंतिम घटना का इंडेक्स कैसे खोजें?

    पायथन में rfind() मेथड होता है जो सबस्ट्रिंग की घटना के लिए स्ट्रिंग के अंत से खोज करता है। यदि मिल जाए तो यह अंतिम घटना का इंडेक्स लौटाता है, अन्यथा -1। आप इसका उपयोग निम्न प्रकार से कर सकते हैं: >>> some of the some.rfind(some) 12 >>> some of the some.rfind(none) -1 >>>