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

首頁 > 學院 > 開發(fā)設計 > 正文

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

2019-11-09 20:45:39
字體:
來源:轉載
供稿:網友

題目描述

輸入描述:

先輸入字典中單詞的個數,再輸入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;}


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 新沂市| 顺义区| 隆化县| 贵南县| 上栗县| 太和县| 都江堰市| 通州区| 新乡县| 淳安县| 渭南市| 建德市| 新化县| 镇雄县| 东宁县| 大安市| 扬中市| 大庆市| 沙雅县| 曲松县| 睢宁县| 南部县| 寻乌县| 九龙城区| 通江县| 化隆| 两当县| 通海县| 青冈县| 崇文区| 将乐县| 淅川县| 阳春市| 清流县| 鄄城县| 白城市| 嘉兴市| 新绛县| 花垣县| 益阳市| 大方县|