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

C++ में एक वर्ण की सभी घटनाओं को हटाने के बाद ASCII मानों का योग कम से कम करें

मान लीजिए कि हमारे पास एक स्ट्रिंग है। किसी विशेष वर्ण की प्रत्येक घटना को हटाने के बाद, हमें प्रत्येक वर्ण के ASCII मानों के योग को स्ट्रिंग में कम करना होगा। मान लीजिए कि एक स्ट्रिंग "हैलो" की तरह दी गई है, ASCII वर्णों का योग (104 + 101 + 108 + 108 + 111) =532 है। अब प्रत्येक वर्ण की घटनाओं की जाँच करें।

  • h एक बार हुआ है, इसलिए लागत 1 * 104 =104 है
  • e एक बार हुआ है, इसलिए लागत 1 * 101 =101 है
  • l एक बार हुआ है, इसलिए लागत 2 * 108 =216
  • . है
  • o एक बार हुआ है, इसलिए लागत 1 * 111 =111
  • . है

यहाँ l अधिकतम समय आया है, इसलिए यदि हम l की सभी घटनाओं को हटा दें, तो मान न्यूनतम हो जाएगा। तो वास्तव में हम उपरोक्त सूची से अधिकतम मूल्य निकाल रहे हैं। यहां अंतिम परिणाम होगा 532 – 216 =316

तर्क सरल है सबसे पहले हमें स्ट्रिंग का ASCII योग लेना होगा। फिर स्ट्रिंग में मौजूद प्रत्येक वर्ण की आवृत्ति की गणना करें, फिर उस वर्ण को हटा दें जो अधिकतम मान को घटना * ASCII मान के रूप में योगदान दे रहा है। घटाया गया मान परिणाम है।

उदाहरण

#include <iostream>
using namespace std;
int minASCIISum(string str, int len) {
   int max_val = INT_MIN, sum = 0;
   int frequency[26] = { 0 };
   for (int i = 0; i < len; i++) {
      frequency[str[i] - 'a']++;
      sum += (int)str[i];
   }
   for (int i = 0; i < 26; i++)
   max_val = max(max_val, frequency[i] * (i + 'a'));
   return (sum - max_val);
}
int main() {
   string str = "hello";
   int n = str.length();
   cout << "Minimized Sum: " << minASCIISum(str, n);
}

आउटपुट

Minimized Sum: 316

  1. C++ में सभी उप-अनुक्रमों के योग का योग ज्ञात कीजिए

    मान लें कि हमारे पास n तत्वों के साथ एक सरणी A है। हमें सरणी के सभी उपसमुच्चय के योग का कुल योग ज्ञात करना है। तो अगर सरणी A =[5, 6, 8] की तरह है, तो यह − . जैसा होगा सबसेट योग 5 5 6 6 8 8 5,6 11 6,8 14 5,8 13 5,6,8 19 कुल योग 76 चूंकि सरणी में n तत्व हैं, तो हमारे पास 2n उपसमुच्चय (खाली

  1. सी ++ में बार-बार घटाव के साथ सभी तत्वों को समान बनाने के बाद अधिकतम सरणी योग पाएं

    मान लीजिए कि हमारे पास n तत्वों की एक सरणी है। सभी तत्वों का अधिकतम संभव योग इस प्रकार ज्ञात कीजिए कि सभी तत्व समान हों। केवल संचालन जिसकी अनुमति है वह है किन्हीं दो तत्वों को चुनना और उनमें से बड़े को दो के पूर्ण अंतर से बदलना। मान लीजिए कि तत्व [9, 12, 3, 6] जैसे हैं। फिर आउटपुट 12 होगा। तो पहले ए

  1. C++ में a, b और c से सभी शून्य हटाने के बाद जांचें कि a + b =c मान्य है या नहीं

    मान लीजिए कि हमारे पास तीन संख्याएँ a, b, c हैं, तो हमें जाँच करनी है कि a + b =c, संख्याओं में से सभी 0 को हटाने के बाद है या नहीं। मान लीजिए कि संख्याएँ a =102, b =130, c =2005 हैं, तो 0s निकालने के बाद, संख्याएँ a + b =c होंगी:(12 + 13 =25) यह सत्य है हम एक नंबर से सभी 0 हटा देंगे, फिर हम 0s, a