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

C++ . में सबसे छोटी शब्द दूरी III

मान लीजिए कि हमारे पास शब्दों की एक सूची है और अन्य दो शब्द हैं जिन्हें शब्द 1 और शब्द 2 कहा जाता है, हमें सूची में इन दो शब्दों के बीच सबसे छोटी दूरी का पता लगाना है। यहां शब्द 1 और शब्द 2 समान हो सकते हैं और वे सूची में दो अलग-अलग शब्दों का प्रतिनिधित्व करते हैं। आइए मान लें कि शब्द =["अभ्यास", "बनाता है", "पूर्ण", "कौशल", "बनता है"]।

इसलिए, यदि इनपुट शब्द 1 ="मेक", वर्ड 2 ="कौशल" जैसा है, तो आउटपुट 1

होगा

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

  • रिट:=10^9, एल1:=10^9, एल2:=-10^9

  • n :=शब्दों का आकार

  • इनिशियलाइज़ i :=0 के लिए, जब i

    • यदि शब्द [i] शब्द 1 के समान है, तो -

      • एल1:=मैं

    • यदि शब्द [i] शब्द 2 के समान है, तो -

      • यदि शब्द 1 शब्द 2 के समान है, तो -

        • एल1:=एल2

      • l2:=मैं

    • ret :=न्यूनतम |l2 - l1| और सेवानिवृत्त

  • वापसी रिट

उदाहरण

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

#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
   int shortestWordDistance(vector<string<& words, string word1, string word2) {
      int ret = 1e9;
      int l1 = 1e9;
      int l2 = -1e9;
      int n = words.size();
      for (int i = 0; i < n; i++) {
         if (words[i] == word1) {
            l1 = i;
         }
         if (words[i] == word2) {
            if (word1 == word2) {
               l1 = l2;
            }
            l2 = i;
         }
         ret = min(abs(l2 - l1), ret);
      }
      return ret;
   }
};
main(){
   Solution ob;
   vector<string< v = {"practice", "makes", "perfect", "skill", "makes"};
   cout << (ob.shortestWordDistance(v, "makes", "skill"));
}

इनपुट

{"practice", "makes", "perfect", "skill", "makes"},"makes", "skill"

आउटपुट

1

  1. C++ में डुप्लीकेट III शामिल है

    मान लीजिए कि हमारे पास पूर्णांकों की एक सरणी है, हमें यह जांचना होगा कि क्या सरणी में दो अलग-अलग सूचकांक i और j हैं जैसे कि nums[i] और nums[j] के बीच पूर्ण अंतर अधिकतम टी. और i और j के बीच पूर्ण अंतर अधिकतम k है। इसलिए यदि इनपुट [1,2,3,1] जैसा है, तो यदि k =3 और t =0 है, तो सही लौटें। इसे हल करने क

  1. C++ . में बदसूरत संख्या III

    मान लीजिए हमें n-th बदसूरत संख्या खोजने के लिए एक प्रोग्राम लिखना है। बदसूरत संख्याएँ धनात्मक पूर्णांक होती हैं जो a या b या c से विभाज्य होती हैं। उदाहरण के लिए, यदि n =3 और a =2, b =3 और c =5, तो आउटपुट 4 होगा, क्योंकि बदसूरत संख्याएँ हैं [2,3,4,5,6,8,9,10] , तीसरा वाला 4 है। इसे हल करने के लिए,

  1. सी++ में लक्ष्य रंग के लिए सबसे छोटी दूरी

    मान लीजिए कि हमारे पास एक सरणी रंग है, जिसमें तीन रंग हैं:1, 2 और 3. हमने कुछ प्रश्न दिए हैं। प्रत्येक क्वेरी में दो पूर्णांक i और c होते हैं, हमें दिए गए अनुक्रमणिका i और लक्ष्य रंग c के बीच सबसे छोटी दूरी ज्ञात करनी होती है। यदि कोई समाधान नहीं है, तो -1 लौटें। तो अगर रंग सरणी [1,1,2,1,3,2,2,3,3]