समस्या विवरण
मान लीजिए हमारे पास दो स्ट्रिंग्स s और t हैं जो केवल लोअरकेस अक्षरों से बनी हैं। अब, स्ट्रिंग t को स्ट्रिंग s को रैंडमली शफल करके और फिर एक रैंडम इंडेक्स पर एक अतिरिक्त अक्षर जोड़कर उत्पन्न किया जाता है। हमें वह अक्षर ढूंढना है जो t में जोड़ा गया था।
उदाहरण
यदि इनपुट है: "mnopq", "pqmnot", तो आउटपुट होगा "t", यह अतिरिक्त अक्षर है।
हल करने का दृष्टिकोण
इस समस्या को हल करने के लिए निम्नलिखित चरणों का पालन करें:
- sSum := 0, tSum := 0
- i := 0 से आरंभ करें, जब i < s.length(), i को 1 से बढ़ाते हुए:
- sSum := sSum + s[i]
- j := 0 से आरंभ करें, जब j < t.length(), j को 1 से बढ़ाते हुए:
- tSum := tSum + t[j]
- (tSum - sSum) को वर्ण के रूप में लौटाएं
C++ कार्यान्वयन
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
char findTheDifference(string s, string t) {
int sSum = 0;
int tSum = 0;
for (int i = 0; i < s.length(); i++) {
sSum += s[i];
}
for (int j = 0; j < t.length(); j++) {
tSum += t[j];
}
return char(tSum - sSum);
}
};
int main() {
Solution ob;
cout << (ob.findTheDifference("mnopq","pqmnot"));
return 0;
}
इनपुट
"mnopq","pqmnot"
आउटपुट
t