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

C++ में दो स्ट्रिंग्स को समान बनाने के लिए न्यूनतम लागत

मान लीजिए कि हमारे पास दो तार A और B हैं, और अन्य दो लागत मान जैसे CostA, और CostB हैं। हमें A और B को समान बनाने के लिए न्यूनतम लागत ज्ञात करनी होगी। हम स्ट्रिंग से वर्णों को हटा सकते हैं, स्ट्रिंग A से हटाने की लागत CostA है, और स्ट्रिंग B से हटाने की लागत CostB है। एक स्ट्रिंग से सभी वर्णों को हटाने की लागत समान है। मान लीजिए कि स्ट्रिंग A ="wxyz", B ="wyzx", CostA 10 है और CostB 20 है। तो आउटपुट 30 होगा। यदि हम दोनों स्ट्रिंग्स से x हटाते हैं, तो A और B समान होंगे। तो लागत 10 + 20 =30 है।

यह सबसे लंबी सामान्य बाद की समस्या की भिन्नता में से एक है। हमें ए और बी से एलसीएस की लंबाई का पता लगाना है, फिर एलसीएस की लंबाई को ए और बी से घटाना है, इस प्रकार हम हटाए जाने वाले वर्णों की संख्या प्राप्त कर सकते हैं।

उदाहरण

#include <iostream>
using namespace std;
bool isRepresentedInDDigits(int num, int d, int base) {
   if (d==1 && num < base)
      return true;
   if (d > 1 && num >= base)
      return isRepresentedInDDigits(num/base, --d, base);
      return false;
}
bool checkNumber(int num, int d) {
   // Check for all bases one by one
   for (int base=2; base<=32; base++)
   if (isRepresentedInDDigits(num, d, base))
   return true;
   return false;
}
int main() {
   int num = 8;
   int dig = 2;
   if(checkNumber(num, dig))
      cout << "Can be represented";
   else
      cout << "Can not be represented";
}

आउटपुट

Can be represented

  1. C++ में दो न्यूमेरिक स्ट्रिंग्स को एक समान बनाने की न्यूनतम लागत

    मान लीजिए कि हमारे पास दो अंकीय तार ए और बी हैं। हमें ए और बी को समान बनाने के लिए न्यूनतम लागत का पता लगाना है। हम केवल एक ही ऑपरेशन कर सकते हैं, यानी हम स्ट्रिंग से अंकों को हटा सकते हैं, संख्या से एक अंक को हटाने की लागत अंकों के मूल्य के समान है। मान लीजिए कि स्ट्रिंग A =6789, B =7859, तो हमें A

  1. C++ में कैरेक्टर को हटाए बिना दो स्ट्रिंग्स एनाग्राम बनाने के लिए आवश्यक न्यूनतम जोड़तोड़

    मान लीजिए कि हमारे पास समान लंबाई के दो तार हैं, हमें किसी भी वर्ण को हटाए बिना दो स्ट्रिंग विपर्यय बनाने के लिए आवश्यक न्यूनतम संख्या में परिवर्तन करना होगा। विपर्यय दो तार होते हैं जिनमें वर्णों का एक ही सेट होता है। मान लीजिए कि दो स्ट्रिंग हैलो हैं, और वर्ल्ड यहां आवश्यक परिवर्तनों की संख्या 3 ह

  1. C++ में को-प्राइम ऐरे बनाने के लिए न्यूनतम इंसर्शन

    इस खंड में हम एक और दिलचस्प समस्या देखेंगे। मान लीजिए कि हमारे पास एन तत्वों की एक सरणी है। इस सरणी को सह-अभाज्य सरणी बनाने के लिए हमें न्यूनतम संख्या में प्रतिच्छेदन बिंदु खोजने होंगे। को-प्राइम एरे में हर दो लगातार एलीमेंट का gcd 1 होता है। हमें ऐरे को भी प्रिंट करना होता है। मान लीजिए हमारे पास