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

पायथन में एक स्ट्रिंग को दूसरी स्ट्रिंग में बदलना


मान लीजिए हमारे पास दो स्ट्रिंग str1 और str2 हैं। और उनकी लंबाई समान है, हमें जांचना है कि क्या हम str1 को str2 में शून्य या अधिक रूपांतरण करके बदल सकते हैं।

एक रूपांतरण में हम str1 में एक वर्ण के सभी घटनाओं को किसी अन्य लोअरकेस अंग्रेजी वर्ण में बदल सकते हैं। हमें जांचना है कि क्या हम str1 को str2 में बदल सकते हैं या नहीं।

इसलिए, यदि इनपुट इस तरह है str1 = "aabcc", str2 = "ccdee", तो आउटपुट true होगा, क्योंकि 'c' को 'e' में बदलें फिर 'b' को 'd' में फिर 'a' को 'c' में। यहां हमें ध्यान रखना होगा कि रूपांतरण का क्रम मायने रखता है।

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

  • compress() फ़ंक्शन परिभाषित करें। यह s लेगा

  • n := s का आकार

  • a := एक नई सूची

  • count := 1

  • i को 1 से n तक की रेंज में, करें

    • यदि s[i], s[i-1] के समान नहीं है, तो

      • count को a के अंत में सम्मिलित करें

      • count := 1

    • अन्यथा,

      • count := count + 1

  • count को a के अंत में सम्मिलित करें

  • a लौटाएं

  • canConvert() फ़ंक्शन परिभाषित करें। यह str1, str2 लेगा

  • a := compress(str1)

  • b := compress(str2)

  • n := a का आकार, m := b का आकार

  • d := एक नया मैप

  • n := n, m का न्यूनतम

  • i := 0

  • जब तक i < n शून्येतर है, करें

    • यदि a[i] > b[i] शून्येतर है, तो

      • False लौटाएं

    • i := i + 1

  • str2 में प्रत्येक i के लिए, करें

    • यदि i, d में नहीं है, तो

      • d[i] := 1

  • True लौटाएं यदि 26 - d का आकार शून्येतर है या str1, str2 के समान है अन्यथा False

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

उदाहरण

class Solution(object):     def compress(self, s):         n = len(s)         a = []         count = 1         for i in range(1, n):             if s[i] != s[i-1]:                 a.append(count)                 count = 1             else:                 count += 1         a.append(count)         return a     def canConvert(self, str1, str2):         a = self.compress(str1)         b = self.compress(str2)         n = len(a)         m = len(b)         d = {}         n = min(n, m)         i = 0         while i < n:             if a[i] > b[i]:                 return False             i += 1         for i in str2:             if i not in d:                 d[i] = 1         return True if 26 - len(d) or str1 == str2 else False ob = Solution() print(ob.canConvert("aabcc", "ccdee"))

इनपुट

"aabcc", "ccdee"

आउटपुट

True
  1. - पायथन में स्ट्रिंग्स पर लॉजिकल ऑपरेटर्स

    पायथन में लॉजिकल ऑपरेटर्स and और or स्ट्रिंग्स पर भी लागू होते हैं। खाली स्ट्रिंग का बूलियन मान False होता है, जबकि नॉन-खाली स्ट्रिंग्स True होती हैं। व्यवहार की समझ and ऑपरेटर पहला फाल्सी (झूठा) मान लौटाता है यदि कोई हो। अन्यथा अंतिम मान लौटाता है। or ऑपरेटर पहला ट्रूथी (सच्चा) मान लौटाता है

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

    समस्या विवरण पायथन को इस तरह के रूपांतरण की बहुत आवश्यकता होती है। उदाहरण के लिए, ऐसे रूपांतरण सीरियलाइज़ेशन उद्देश्यों के लिए उपयोगी होते हैं। ऐसे रूपांतरण का एक उदाहरण होगा: [h, e, l, l, o, , w, o, r, l, d] से hello world पायथन में एक join मेथड होता है जिसका उपयोग ऐसे रूपांतरण के लिए किया जा सकत

  1. - पायथन में एक टुपल को दूसरे टुपल में कैसे जोड़ें?

    आप + ऑपरेटर का उपयोग करके सीधे एक टुपल को दूसरे टुपल में जोड़ सकते हैं। उदाहरण के लिए: उदाहरण x = (1, 2, 3) y = (4, 5) x = x + y print(x) आउटपुट यह आउटपुट देगा: (1, 2, 3, 4, 5)