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

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


मान लीजिए हमारे पास एक स्ट्रिंग है। हमें स्ट्रिंग में प्रत्येक वर्ण के ASCII मानों का योग न्यूनतम करना है, एक विशेष वर्ण की प्रत्येक घटना को हटाने के बाद। मान लीजिए "hello" जैसी स्ट्रिंग दी गई है, 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 एलिमेंट्स हैं, तो हमारे पास 2ⁿ संख्या में सबस

  1. - दोहराए गए घटाव से सभी तत्वों को समान बनाकर अधिकतम ऐरे योग खोजें C++ में

    मान लीजिए हमारे पास n तत्वों का एक ऐरे है। सभी तत्वों के अधिकतम संभव योग को खोजें जैसे कि सभी तत्व समान हों। केवल अनुमत ऑपरेशन किन्हीं दो तत्वों को चुनना और बड़े को उन दोनों के निरपेक्ष अंतर से बदलना है। मान लीजिए तत्व [9, 12, 3, 6] जैसे हैं। तो आउटपुट 12 होगा। तो पहले A[1] को A[1] - A[3] = 12 - 6 =

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

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