हमें इनपुट के रूप में एक स्ट्रिंग str[] दी गई है। लक्ष्य str[] से शब्दों को गिनना है जिनकी लंबाई str[] के समान है और अक्षरों की स्थिति है जैसे कि ith अक्षर को स्थिति (i1) या (i) या (i+1) पर अक्षर से बदल दिया जाता है।पी>
पहले अक्षर के लिए प्रतिस्थापन स्थिति i या i+1 से होगा
अंतिम अक्षर के लिए प्रतिस्थापन स्थिति i-1 या i से होगा।
आइए उदाहरणों से समझते हैं।
इनपुट - str[] ="टीपीपी"
आउटपुट - उन शब्दों की संख्या जिनका i-th अक्षर या तो (i-1)-th, i-th, या (i+1)-दिए गए शब्द का अक्षर है − 4
स्पष्टीकरण
Replacing T by T (i)th or 1st P (i+1)th = TPP, PPP Replacing 1st P by T (i-1)th, P (i)th, or P(i+1)th = TTP, TPP, TPP Replacing 2nd P by P(i-1)th or P(i)th = TPP, TPP Unique combination of replacements: TPP, PPP, TTP, PTP
इनपुट - str ="आआ"
आउटपुट - उन शब्दों की संख्या जिनका i-th अक्षर या तो (i-1)-th, i-th, या (i+1)- दिए गए शब्द का अक्षर है:1
स्पष्टीकरण
Replacing a by a (i)th or 2nd a (i+1)th = aaa, aaa Replacing 2nd a by a (i-1)th, a (i)th, or a(i+1)th = aaa, aaa, aaa Replacing 3rd a by a(i-1)th or a(i)th = aaa, aaa Unique combination of replacements: aaa
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
हम जानते हैं कि प्रत्येक अक्षर के लिए हमारे पास तीन संभावनाएं हैं। यदि वर्तमान अक्षर i के लिए, सभी (i-1)th, ith, (i+1)th अलग हैं तो हमारे पास 3 विकल्प हैं। यदि दो समान हैं तो हमारे पास 2 विकल्प हैं, यदि सभी समान हैं तो केवल एक ही विकल्प है।
तो हम स्ट्रिंग को पार करेंगे और विशिष्टता की जांच करेंगे और अक्षरों के अनुसार 3, 2 या 1 से गुणा करेंगे। पहले और आखिरी अक्षर के लिए, हम विशिष्टता की जांच करेंगे और इसी तरह से 2 या 1 से गुणा करेंगे।
-
स्ट्रिंग str[] को एक वर्ण सरणी के रूप में लें।
-
फंक्शन टोटल (चार स्ट्र [], इंट लेंथ) स्ट्रिंग लेता है और उन शब्दों की गिनती लौटाता है जिनका i-th अक्षर या तो (i-1)-th, i-th, या (i+1)-th अक्षर दिया गया है str[] में शब्द।
-
प्रारंभिक गणना को 1 के रूप में लें। शब्द str[] में ही है।
-
अगर एक अक्षर है, तो लंबाई 1 होगी, वापसी 1.
-
सूचकांक 0 पर पहले अक्षर की जाँच करें। यदि यह दूसरे के समान है तो str[0]==str[1] फिर 1 से गुणा करें
-
यदि वे भिन्न हैं तो 2 से गिनें गुणा करें।
-
अब लूप के लिए इंडेक्स i=1 से i
-
सूचकांक में प्रत्येक अक्षर के लिए i. जांचें कि क्या str [i] str [i-1] या str [i + 1] जैसा ही है। अगर हाँ, तो गिनती को 1 से गुणा करें।
-
यदि कोई दो समान हैं, तो 2 से गुणा करें।
-
अन्यथा 3 से गुणा करें।
-
अंतिम वर्ण के लिए, जांचें कि क्या str[i-1]==str[i]. अगर सही है, तो गिनती को 1 से गुणा करें। वरना 2 से गुणा करें
-
अंत में हमारे पास ऐसे विशिष्ट शब्दों की गिनती होगी।
-
परिणाम के रूप में वापसी की गिनती।
उदाहरण
#include<bits/stdc++.h> using namespace std; int total(char str[], int length){ int count = 1; if (length == 1){ return count; } if (str[0] == str[1]){ count = count * 1; } else{ count = count * 2; } for (int j=1; j<length-1; j++){ if (str[j] == str[j-1] && str[j] == str[j+1]){ count = count * 1; } else if (str[j] == str[j-1]){ count = count * 2; } else if(str[j] == str[j+1]){ count = count * 2; } else if(str[j-1] == str[j+1]){ count = count * 2; } else{ count = count * 3; } } if (str[length - 1] == str[length - 2]){ count = count * 1; } else{ count = count * 2; } return count; } int main(){ char str[] = "TPP"; int length = strlen(str); cout<<"Count of words whose i-th letter is either (i-1)-th, i-th, or (i+1)-th letter of given word are: "<<total(str, length) << endl; return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
Count of words whose i-th letter is either (i-1)-th, i-th, or (i+1)-th letter of given word are: 4