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

उस खिलाड़ी को खोजें जो पहले पायथन में एक पैलिंड्रोम स्ट्रिंग प्राप्त करने के लिए पात्रों को पुनर्व्यवस्थित करता है


मान लीजिए कि हमारे पास लोअरकेस अक्षरों वाला एक स्ट्रिंग S है, अब दो खिलाड़ी खेल खेल रहे हैं। नियम इस प्रकार हैं -

  • खिलाड़ी खेल जीत जाता है, अगर, किसी भी चाल पर, कोई खिलाड़ी पैलिंड्रोम स्ट्रिंग प्राप्त करने के लिए स्ट्रिंग के पात्रों को फेरबदल कर सकता है।

  • खिलाड़ी तब जीत नहीं सकता जब उसे स्ट्रिंग से किसी वर्ण को हटाना पड़े।

हमें यह ध्यान रखना होगा कि दोनों खिलाड़ी बेहतर तरीके से खेल खेलते हैं और खिलाड़ी 1 खेल शुरू करता है। हमें खेल के विजेता को ढूंढना है।

इसलिए, यदि इनपुट "pqpppq" जैसा है, तो आउटपुट प्लेयर1 होगा क्योंकि प्लेयर-1 पहले चरण में वर्णों को "ppqqpp" प्राप्त करने के लिए व्यवस्थित करता है और गेम जीतता है।

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

  • l :=अनुक्रम का आकार

  • freq :=आकार 26 की सूची बनाएं और 0 से भरें

  • मेरे लिए 0 से l की सीमा में, 1 की वृद्धि करें

    • अनुक्रम की आवृत्ति [i] को 1 से बढ़ाएं

    • गिनती :=0

    • मेरे लिए 0 से 25 की सीमा में, करें

      • अगर freq[i] mod 2 0 नहीं है, तो

        • गिनती :=गिनती + 1

    • अगर गिनती 0 है या गिनती विषम है, तो

      • वापसी 1

    • अन्यथा,

      • वापसी 2

उदाहरण

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

def who_is_the_winner(sequence):
   l = len(sequence)
   freq = [0 for i in range(26)]
   for i in range(0, l, 1):
      freq[ord(sequence[i]) - ord('a')] += 1
   count = 0
   for i in range(26):
      if (freq[i] % 2 != 0):
         count += 1
   if (count == 0 or count & 1 == 1):
      return 1
   else:
      return 2
sequence = "pqpppq"
print("Player:", who_is_the_winner(sequence) )

इनपुट

"pqpppq"

आउटपुट

Player: 1

  1. पायथन में एक स्ट्रिंग में पहला दोहराया शब्द खोजें?

    एक स्ट्रिंग दी गई है। हमारा काम दिए गए स्ट्रिंग में पहले दोहराए गए शब्द को ढूंढना है। इस समस्या को लागू करने के लिए हम पायथन संग्रह का उपयोग कर रहे हैं। संग्रह से, हम काउंटर () विधि प्राप्त कर सकते हैं। एल्गोरिदम Repeatedword(n) /* n is the string */ Step 1: first split given string separated by sp

  1. पायथन में स्ट्रिंग के पहले 100 अक्षर कैसे प्राप्त करें?

    पायथन में स्लाइस ( :) ऑपरेटर आपको स्ट्रिंग का एक भाग प्राप्त करने की अनुमति देता है। स्लाइस ऑपरेटर के दो ऑपरेंड होते हैं, स्लाइस की शुरुआत का इंडेक्स और स्लाइस का अंत। substr = var[x:y] निम्न उदाहरण में, 7वें वर्णों से तीन वर्ण प्राप्त होते हैं (पायथन अनुक्रम शून्य आधारित अनुक्रमणिका का उपयोग करता ह

  1. पायथन में एक स्ट्रिंग की लंबाई कैसे प्राप्त करें?

    पायथन में लेन () नामक एक विधि है जो हमें किसी भी समग्र वस्तु की लंबाई देती है। एक स्ट्रिंग की लंबाई प्राप्त करने के लिए, बस स्ट्रिंग को लेन () कॉल पर पास करें। उदाहरण के लिए, print(len('abcdefghijklmnopqrstuvwxyz')) आउटपुट 26