समस्या
दो वाक्यांश तभी एनाग्राम होते हैं जब उनमें बिल्कुल वही अक्षर उतनी ही बार आए हों, केस, स्पेस और विराम चिह्नों की अनदेखी करते हुए।
is_anagram(first, second) को इम्प्लीमेंट करें।
इनपुट
first: पहला वाक्यांश। second: दूसरा वाक्यांश।
आउटपुट
यदि दोनों वाक्यांश एनाग्राम हैं तो true लौटाएँ।
सीमाएँ
0 ≤ प्रत्येक की लंबाई ≤ 10,000 (ASCII)
उदाहरण
इनपुट:
first = "Listen"
second = "Silent"
अपेक्षित आउटपुट:
expected = True
इनपुट:
std::string first = "Listen";
std::string second = "Silent";
अपेक्षित आउटपुट:
bool expected = true;
इनपुट:
string first = "Listen";
string second = "Silent";
अपेक्षित आउटपुट:
bool expected = true;
व्याख्या
दोनों में e, i, l, n, s, t एक-एक बार प्रयुक्त हुए हैं।
इनपुट:
first = "apple"
second = "paddle"
अपेक्षित आउटपुट:
expected = False
इनपुट:
std::string first = "apple";
std::string second = "paddle";
अपेक्षित आउटपुट:
bool expected = false;
इनपुट:
string first = "apple";
string second = "paddle";
अपेक्षित आउटपुट:
bool expected = false;
व्याख्या
अक्षर और उनकी गिनती अलग है।
कैसे हल करें
पहले खुद कोशिश करें, फिर एक-एक करके संकेत खोलें।
संकेत 1
Compare करने से पहले non-letters हटाएं और case ignore करें.
संकेत 2
दोनों phrases की character frequencies count करें, या उनके normalized forms sort करें.
संकेत 3
Punctuation और spaces result को affect नहीं करने चाहिए.
अपेक्षित जटिलता
समय O(n), अतिरिक्त स्थान O(1)
संदर्भ
यह चुनौती CodeUtility के लिए अनुकूलित की गई है। ऊपर दिए गए स्टेटमेंट और सीमाओं का पालन करें।