国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

華為機試在線訓練-牛客網(17)查找兄弟單詞

2019-11-10 17:04:40
字體:
來源:轉載
供稿:網友

題目描述

輸入描述:

先輸入字典中單詞的個數,再輸入n個單詞作為字典單詞。輸入一個單詞,查找其在字典中兄弟單詞的個數再輸入數字n

輸出描述:

根據輸入,輸出查找到的兄弟單詞的個數

輸入例子:
3	abc	bca	cab	abc	1
輸出例子:
2	bca這個題目的問題描述讓人很是糊涂。正確的描述應該是這樣的:
輸入描述:
先輸入字典中單詞的個數n,再輸入n個單詞作為字典單詞。
再輸入一個單詞,查找其在字典中兄弟單詞的個數m
再輸入數字k
輸出描述:
根據輸入,輸出查找到的兄弟單詞的個數m然后輸出查找到的兄弟單詞的第k個單詞。另外這題還有一個邊界條件判斷:輸入的兄弟單詞索引號k超過兄弟單詞總數時,只輸出兄弟單詞的總數

這題自己走的最大的彎路是:開始沒有把判斷兄弟單詞寫成函數,在對broWord和vec_words[i]進行排序比較時直接對原單詞進行了操作,這樣導致結果不對,應該采用中間變量緩存處理。寫成函數后,排序比較變成局部變量的處理,因此不會影響到源實參。

教訓:能封裝成函數的就寫成函數在內部處理

完整AC后的代碼:

 #include <iostream>#include <vector>#include <string>#include <algorithm>using namespace std;bool isBroWord(string word1,string word2){    if(word1==word2)        return false;    sort(word1.begin(),word1.end());    sort(word2.begin(),word2.end());    return word1==word2;}int main(){   int wordCnt;   while(cin>>wordCnt){       int k;       string word;       vector<string> vec_words;       string broWord;       vector<string> vec_broWords;       for(int i=0;i<wordCnt;i++){           cin>>word;           vec_words.push_back(word);       }       //字典排序       sort(vec_words.begin(),vec_words.end());       cin>>broWord;       for(int i=0;i<vec_words.size();i++){            if(isBroWord(broWord,vec_words[i]))               vec_broWords.push_back(vec_words[i]);             }       cin>>k;       cout<<vec_broWords.size()<<endl;       if(vec_broWords.size()>=k)//邊界判斷           cout<<vec_broWords[k-1]<<endl;   }   return 0;}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄山市| 邵武市| 越西县| 叙永县| 尖扎县| 江川县| 太原市| 天全县| 孝昌县| 赫章县| 馆陶县| 故城县| 读书| 六安市| 东阳市| 南澳县| 新宾| 临泽县| 三台县| 鄂伦春自治旗| 宽甸| 阿克| 西林县| 宣武区| 响水县| 福贡县| 杂多县| 哈巴河县| 岢岚县| 云和县| 铁力市| 永春县| 延津县| 扎赉特旗| 雷州市| 肇州县| 长汀县| 普格县| 紫阳县| 法库县| 邳州市|