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

प्रोग्राम यह जांचने के लिए कि क्या पहला खिलाड़ी एक गेम जीत सकता है जहां खिलाड़ी सी ++ में चार से स्ट्रिंग चार बना सकते हैं

मान लीजिए हमारे पास शब्दों की एक सूची है। अब एक घोस्ट गेम पर विचार करें जहां दो खिलाड़ी इसमें भाग ले सकते हैं। यहां खिलाड़ी वैकल्पिक रूप से एक स्ट्रिंग में अक्षरों को जोड़ते हैं। और जो स्ट्रिंग बनाई जा रही है वह सूची में किसी शब्द का एक मान्य उपसर्ग होना चाहिए, और जो खिलाड़ी सूची में किसी भी शब्द का उच्चारण करता है वह हार जाता है। हमें यह जांचना होगा कि पहला खिलाड़ी जीत सकता है या नहीं, अगर दोनों खिलाड़ी बेहतर तरीके से खेल रहे हैं।

इसलिए, यदि इनपुट शब्द =["प्रबंधन", "प्रबंधक", "मिनट"] जैसा है, तो आउटपुट सही होगा, क्योंकि वे इस तरह खेल सकते हैं -

  • मी [खिलाड़ी 1]
  • मा [खिलाड़ी 2]
  • आदमी [खिलाड़ी 1]
  • मन [खिलाड़ी 2]
  • प्रबंध [खिलाड़ी 1]
  • प्रबंधित करें [प्लेयर 2] हारें

तो खिलाड़ी 1 जीत जाता है।

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

  • एक नक्शा एमपी परिभाषित करें
  • हर शब्द के लिए इसे शब्दों में करें
    • ch :=it[0]
    • इसे mp[ch] में डालें
  • mn :=inf
  • एमपी में प्रत्येक की-वैल्यू पेयर के लिए, करें
    • str:=इसका मान
    • आकार :=str का आकार
    • यदि आकार mod 2 0 के समान है, तो −
      • वापसी 1
    • वापसी 0

उदाहरण (C++)

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

#include <bits/stdc++.h>
using namespace std;
bool solve(vector<string> &words) {
   map<char, set<string>> mp;
   for (auto &it : words) {
      char ch = it[0];
      mp[ch].insert(it);
   }
   int mn = INT_MAX;
   for (auto &it : mp) {
      string str = *(it.second.begin());
      int size = str.size();
      if (size % 2 == 0)
         return 1;
   }
   return 0;
}
int main(){
   vector<string> v = {"manage", "manager", "min"};
   cout << solve(v);
}

इनपुट

{"manage", "manager", "min"}

आउटपुट

1

  1. यह जांचने के लिए कार्यक्रम कि क्या पहला खिलाड़ी अन्य की तुलना में अधिक कैंडी ले सकता है या नहीं, पायथन में

    मान लीजिए कि हमारे पास कैंडी नामक संख्याओं की एक सूची है और दो व्यक्ति सबसे अधिक संख्या में कैंडी इकट्ठा करने के लिए दौड़ रहे हैं। यहां दौड़ बारी आधारित है, व्यक्ति 1 पहले शुरू कर रहा है, और प्रत्येक मोड़ में वह आगे या पीछे से कैंडी उठा सकता है। हमें यह जांचना होगा कि व्यक्ति 1 अन्य की तुलना में अधि

  1. यह जांचने के लिए कार्यक्रम कि क्या हम ऑपरेटरों को पायथन में रखकर 24 बना सकते हैं

    मान लीजिए कि हमारे पास चार संख्याओं की एक सूची है, प्रत्येक संख्या एक निश्चित क्रम में 1 से 9 की सीमा में है। अब यदि हम संख्याओं के बीच ऑपरेटरों +, -, *, और / (/ (/ पूर्णांक विभाजन को दर्शाता है) को रखते हैं, और उन्हें कोष्ठक के साथ समूहित करते हैं, तो हमें यह जांचना होगा कि मान 24 प्राप्त करना संभव

  1. यह जांचने का कार्यक्रम कि क्या पहला खिलाड़ी कैंडी में जीतता है या पायथन में खेल को हटाता है या नहीं?

    मान लीजिए हमारे पास कैंडीज नामक संख्याओं की एक सूची है और कोई अपने मित्र के विरुद्ध खेल खेल रहा है। प्रत्येक दौर में, एक खिलाड़ी समान मूल्य वाली किन्हीं दो लगातार कैंडीज को हटा सकता है। और जो कोई कैंडी नहीं उठा सकता वह हार जाता है और वह खिलाड़ी1 पहले शुरू करता है, हमें यह जांचना होगा कि खिलाड़ी1 जीत