समस्या
C# records मान के आधार पर compare करते हैं: दो records तब equal होते हैं जब उनके सभी fields equal हों, भले ही वे अलग objects हों। इससे duplicates हटाना आसान हो जाता है.
हर record name,city के रूप में लिखा गया है. दोनों fields के आसपास के spaces trim करें; trimming के बाद, दो records तब equal होते हैं जब दोनों fields exactly match करें (case matters).
unique_records(records) implement करें.
Input
records: The records, in order.
Output
Return the distinct records in the order they first appear, written name,city with the trimmed fields.
सीमाएँ
0 ≤ रिकॉर्ड की संख्या ≤ 100,000
हर फ़ील्ड 1 से 30 कैरेक्टर का, बिना कॉमा
उदाहरण
इनपुट:
records = ["Ada,London", "Lin, Hanoi", "Ada , London"]
अपेक्षित आउटपुट:
expected = ["Ada,London", "Lin,Hanoi"]
इनपुट:
std::vector<std::string> records = {"Ada,London", "Lin, Hanoi", "Ada , London"};
अपेक्षित आउटपुट:
std::vector<std::string> expected = {"Ada,London", "Lin,Hanoi"};
इनपुट:
string[] records = new string[] {"Ada,London", "Lin, Hanoi", "Ada , London"};
अपेक्षित आउटपुट:
string[] expected = new string[] {"Ada,London", "Lin,Hanoi"};
व्याख्या
Trimming के बाद, तीसरा record पहले वाले के बराबर है, इसलिए उसे हटा दिया जाता है: ["Ada,London", "Lin,Hanoi"].
इनपुट:
records = ["ada,Paris", "Ada,Paris"]
अपेक्षित आउटपुट:
expected = ["ada,Paris", "Ada,Paris"]
इनपुट:
std::vector<std::string> records = {"ada,Paris", "Ada,Paris"};
अपेक्षित आउटपुट:
std::vector<std::string> expected = {"ada,Paris", "Ada,Paris"};
इनपुट:
string[] records = new string[] {"ada,Paris", "Ada,Paris"};
अपेक्षित आउटपुट:
string[] expected = new string[] {"ada,Paris", "Ada,Paris"};
व्याख्या
Case matters, इसलिए ये दो records अलग हैं: ["ada,Paris", "Ada,Paris"].
कैसे हल करें
पहले खुद कोशिश करें, फिर एक-एक करके संकेत खोलें।
संकेत 1
तुलना से पहले दोनों फ़ील्ड से स्पेस हटाएँ।
संकेत 2
(name, city) जोड़ियों का set देखे जा चुके रिकॉर्ड याद रखता है।
संकेत 3
हर नया रिकॉर्ड पहली बार दिखने पर, इनपुट के क्रम में लौटाएँ।
अपेक्षित जटिलता
समय O(कुल लंबाई), अतिरिक्त स्थान O(रिकॉर्ड की संख्या)
संदर्भ
यह चुनौती CodeUtility के लिए अनुकूलित की गई है। ऊपर दिए गए स्टेटमेंट और सीमाओं का पालन करें।