1. 程式人生 > >Leetcode-966 Vowel Spellchecker(母音拼寫檢查器)

Leetcode-966 Vowel Spellchecker(母音拼寫檢查器)

 1 #define _for(i,a,b) for(int i = (a);i < (b);i ++)
 2 class Solution
 3 {
 4     public:
 5         vector<string> spellchecker(vector<string>& wordlist, vector<string>& queries)
 6         {
 7             vector<string> rnt;
 8             set<string> ws;
9 map<string,int> wxs; 10 map<string,int> wys; 11 12 _for(i,0,wordlist.size()) 13 ws.insert(wordlist[i]); 14 _for(i,0,wordlist.size()) 15 { 16 string tmp = wordlist[i]; 17 _for(j,0
,tmp.size()) 18 tmp[j] = tolower(tmp[j]); 19 if(!wxs.count(tmp)) 20 wxs.insert({tmp,i}); 21 } 22 _for(i,0,wordlist.size()) 23 { 24 string tmp = wordlist[i]; 25 _for(j,0,tmp.size())
26 { 27 tmp[j] = tolower(tmp[j]); 28 if(tmp[j]=='a'||tmp[j]=='e'||tmp[j]=='i' 29 ||tmp[j]=='o'||tmp[j]=='u') 30 tmp[j] = '*'; 31 } 32 if(!wys.count(tmp)) 33 wys.insert({tmp,i}); 34 } 35 36 _for(i,0,queries.size()) 37 { 38 if(ws.count(queries[i])) 39 {rnt.push_back(queries[i]);continue;} 40 41 string tmp = queries[i]; 42 _for(j,0,tmp.size()) 43 tmp[j] = tolower(tmp[j]); 44 auto pp = wxs.find(tmp); 45 if(pp!=wxs.end()) 46 { 47 rnt.push_back(wordlist[pp->second]); 48 continue; 49 } 50 51 _for(j,0,tmp.size()) 52 if(tmp[j]=='a'||tmp[j]=='e'||tmp[j]=='i' 53 ||tmp[j]=='o'||tmp[j]=='u') 54 tmp[j]='*'; 55 auto pp2 = wys.find(tmp); 56 if(pp2!=wys.end()) 57 { 58 rnt.push_back(wordlist[pp2->second]); 59 continue; 60 } 61 rnt.push_back(""); 62 } 63 return rnt; 64 } 65 };