शब्दों की एक सूची को देखते हुए, हमें उन शब्दों को खोजना होगा जिन्हें मानक कीबोर्ड लेआउट की केवल एक पंक्ति पर वर्णमाला के अक्षरों का उपयोग करके टाइप किया जा सकता है।
इसलिए, यदि इनपुट ["हैलो", "दुनिया", "माँ", "पिता", "कोशिश", "टाइप", "टॉम"] जैसा है, तो आउटपुट ["पिता", "कोशिश" होगा , "टाइप"]
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
सरणी आउटपुट परिभाषित करें
-
वनरो :=सच
-
एक नक्शा charToRowMap परिभाषित करें, यह सभी जोड़े को इस तरह ले जाएगा कि {लेटर, लाइन}, अक्षर कीबोर्ड पर मौजूद अक्षर है, और लाइन कीबोर्ड पर लाइन नंबर है।
-
शब्द सरणी में प्रत्येक शब्द के लिए -
-
अगर शब्द खाली नहीं है, तो -
-
वनरो :=सच
-
पंक्ति :=charToRowMap[tolower(word[0])
-
इनिशियलाइज़ i :=1 के लिए, जब i <शब्द का आकार, अपडेट करें (i से 1 बढ़ाएँ), करें -
-
अगर charToRowMap[tolower(word[i]) पंक्ति के बराबर नहीं है, तो -
-
वनरो :=असत्य
-
लूप से बाहर आएं
-
-
-
अगर oneRow गैर-शून्य है, तो -
-
आउटपुट के अंत में शब्द डालें
-
-
-
-
वापसी आउटपुट
उदाहरण
आइए एक बेहतर समझ प्राप्त करने के लिए निम्नलिखित कार्यान्वयन देखें -
#include <bits/stdc++.h> using namespace std; void print_vector(vector<auto> v){ cout << "["; for(int i = 0; i<v.size(); i++){ cout << v[i] << ", "; } cout << "]"<<endl; } class Solution { public: vector<string> findWords(vector<string>& words) { vector<string> output; bool oneRow = true; unordered_map<char, int> charToRowMap{ { 'q', 1 }, { 'w', 1 }, { 'e', 1 }, { 'r', 1 }, { 't', 1 }, { 'y', 1 }, { 'u', 1 }, { 'i', 1 }, { 'o', 1 }, { 'p', 1 }, { 'a', 2 }, { 's', 2 }, { 'd', 2 }, { 'f', 2 }, { 'g', 2 }, { 'h', 2 }, { 'j', 2 }, { 'k', 2 }, { 'l', 2 }, { 'z', 3 }, { 'x', 3 }, { 'c', 3 }, { 'v', 3 }, { 'b', 3 }, { 'n', 3 }, { 'm', 3 } }; for (auto word : words) if (!word.empty()) { oneRow = true; int row = charToRowMap[tolower(word[0])]; for (int i = 1; i < word.length(); i++) if (charToRowMap[tolower(word[i])] != row) { oneRow = false; break; } if (oneRow) output.push_back(word); } return output; } }; main(){ Solution ob; vector<string> v = {"hello","world","mom","dad","try","type","tom"}; print_vector(ob.findWords(v)); }
इनपुट
{"hello","world","mom","dad","try","type","tom"}
आउटपुट
[dad, try, type, ]