मान लीजिए हमारे पास दो स्ट्रिंग्स हैं जो सम्मिश्र संख्याओं का प्रतिनिधित्व करती हैं, हमें उन्हें पार्स करना है और सम्मिश्र संख्या गुणन करना है, फिर परिणाम को स्ट्रिंग के रूप में लौटाना है।
इसलिए यदि इनपुट "1+-1i" और "1+-1i" है, तो परिणाम "0+-2i" होगा।
हल का दृष्टिकोण
इसे हल करने के लिए हम निम्नलिखित चरणों का पालन करेंगे:
aa := पहली सम्मिश्र संख्या का वास्तविक और काल्पनिक भाग का जोड़ाbb := दूसरी सम्मिश्र संख्या का वास्तविक और काल्पनिक भाग का जोड़ाx := aa.real * bb.real - aa.img * bb.imgy := aa.real * bb.img + aa.img * bb.real- "x+yi" प्रारूप में स्ट्रिंग लौटाएं
उदाहरण
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
string complexNumberMultiply(string a, string b) {
pair<int, int> aa = parse(a);
pair<int, int> bb = parse(b);
int x = aa.first * bb.first - aa.second * bb.second;
int y = aa.first * bb.second + aa.second * bb.first;
return to_string(x) + "+" + to_string(y) + "i";
}
pair<int, int> parse(string s){
pair<int, int> ret;
int plus = find(s.begin(), s.end(), '+') - s.begin();
int i = find(s.begin(), s.end(), 'i') - s.begin();
ret.first = stoi(s.substr(0, plus));
ret.second = stoi(s.substr(plus + 1, i - plus));
return ret;
}
};
int main(){
Solution ob;
cout << (ob.complexNumberMultiply("1+-1i", "1+-1i"));
}
इनपुट
"1+-1i" "1+-1i"
आउटपुट
0+-2i