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

C++ प्रोग्राम किसी कैरेक्टर के लिए सबसे छोटी दूरी का पता लगाने के लिए

एक स्ट्रिंग 'ए' और एक वर्ण 'चार' को देखते हुए, कार्य दिए गए स्ट्रिंग के प्रत्येक वर्ण से 'चार' की दूरी को प्रिंट करना है। दूरी सरणी का आकार स्ट्रिंग के आकार के समान होता है, क्योंकि हमें दिए गए स्ट्रिंग के प्रत्येक वर्ण से वर्ण की दूरी ज्ञात करनी होती है।

उदाहरण के लिए

इनपुट-1:

a = “tutorialspoint”

char = “o”

आउटपुट:

[ 3, 2, 1, 0, 1, 2, 3, 4, 5, 6, 0, 1, 2, 3]

स्पष्टीकरण: दी गई स्ट्रिंग में, दिए गए स्ट्रिंग के प्रत्येक वर्ण से वर्ण की दूरी [3, 2, 1, 0, 1, 2, 3, 4, 5, 6, 0, 1, 2, 3] है।

इनपुट-2:

a = “programmer”

char = “r”

आउटपुट:

[1, 0, 1, 2, 0, 1, 2, 3, 4, 0 ]

स्पष्टीकरण: दी गई स्ट्रिंग में, दिए गए स्ट्रिंग के प्रत्येक वर्ण से 'r' की दूरी [1, 0, 1, 2, 0, 1, 2, 3, 4, 0] है।

इस समस्या को हल करने का तरीका

इस समस्या को हल करने के लिए एक जानवर बल दृष्टिकोण स्ट्रिंग में दिए गए वर्ण की स्थिति और सरणी में स्टोर करना है। दिए गए स्ट्रिंग में वर्ण की न्यूनतम दूरी ज्ञात करने के लिए अब पूरे स्ट्रिंग के साथ-साथ स्थिति सरणी पर पुनरावृति करें।

  • इनपुट के रूप में एक स्ट्रिंग और एक वर्ण 'char' लें।
  • एक फंक्शन डिस्टेंसटोचर (स्ट्रिंग ए, चार सीएच) एक स्ट्रिंग और एक कैरेक्टर को इनपुट के रूप में लेता है और दिए गए स्ट्रिंग में प्रत्येक कैरेक्टर से दिए गए कैरेक्टर की दूरी को प्रिंट करता है।
  • स्ट्रिंग 'ए' पर पुनरावृति करें और दिए गए वर्ण की स्थिति को वेक्टर में संग्रहीत करें।
  • अब स्ट्रिंग और स्थिति सरणी पर पुनरावृति करें और स्ट्रिंग में वर्ण की दूरी की गणना करें।
  • स्थिति सरणी प्रिंट करें।

उदाहरण

#include<bits/stdc++.h>
using namespace std;
void shortestToChar(string a, char C) {
   vector < int > pos, dist;
   for (int i = 0; i < a.size(); i++) {
      if (a[i] == C)
         pos.push_back(i);
   }
   for (int i = 0; i < a.size(); i++) {
      int mn = INT_MAX;
      for (int j = 0; j < pos.size(); j++) {
         mn = min(mn, abs(pos[j] - i));
      }
      dist.push_back(mn);
   }
   for (auto i: dist) {
      cout << i << " ";
   }
}
int main() {
   string a = "tutorialspoint";
   char ch {
      'o'
   };
   shortestToChar(a, ch);
}

उपरोक्त कोड को चलाने से आउटपुट इस प्रकार उत्पन्न होगा,

आउटपुट

3 2 1 0 1 2 3 3 2 1 0 1 2 3

स्ट्रिंग "ट्यूटोरियल्सपॉइंट" में वर्ण 'ओ' इंडेक्स 3 और इंडेक्स 10 पर मौजूद है। इस प्रकार, यदि हम इसके पहले और बाद के पात्रों से इसकी निकटतम दूरी की गणना करते हैं, तो हम दूरी प्राप्त करेंगे [3 2 1 0 1 2 3 3 2 1 0 1 2 3]।


  1. C++ में एक लाइन के मध्य-बिंदु को खोजने का प्रोग्राम

    इस समस्या में, हमें दो बिंदु A और B दिए गए हैं, जो एक रेखा के आरंभ और अंत बिंदु हैं। हमारा काम C++ में एक लाइन के मध्य-बिंदु को खोजने के लिए एक प्रोग्राम बनाना है। समस्या का विवरण - यहाँ, हमारे पास एक रेखा है जिसमें शुरुआती और अंत बिंदु A(x1, y1) और B(x2, y2) हैं। और हमें रेखा के मध्य-बिंदु को खोजन

  1. C++ में त्रिभुज के केंद्रक को खोजने का कार्यक्रम

    इस समस्या में, हमें एक 2D सरणी दी गई है जो त्रिभुज के तीन शीर्षों के निर्देशांकों को दर्शाती है। हमारा काम C++ में त्रिभुज के Centroid को खोजने के लिए एक प्रोग्राम बनाना है। सेंट्रोइड त्रिभुज का वह बिंदु है जिस पर त्रिभुज की तीन माध्यिकाएं प्रतिच्छेद करती हैं। माध्यिका त्रिभुज की वह रेखा है जो त्र

  1. C++ में समांतर चतुर्भुज का क्षेत्रफल ज्ञात करने का कार्यक्रम

    इस समस्या में, हमें दो मान दिए गए हैं जो समांतर चतुर्भुज के आधार और ऊंचाई को दर्शाते हैं। हमारा कार्य C++ में समांतर चतुर्भुज का क्षेत्रफल ज्ञात करने के लिए एक प्रोग्राम बनाना है। समांतर चतुर्भुज एक चार भुजा बंद आकृति है जिसकी विपरीत भुजाएँ एक दूसरे के समान और समानांतर हैं। समस्या को समझने के लि