【問題描述】給定乙個段落,由 n 個句子組成。第 i 個句子的長度為 l[i],包含的單詞個數為 w[i]。
句子不包含任何除字母和空格( ) 外的符號。
每個句子內部,含有若干個單詞,由空格( ) 分隔。句子不會包含連續的空格。
隨後給定 m 個查詢,每個查詢包含乙個句子,需要在段落中尋找相同單詞數量最多的句子。重複的單詞只計一次,且不區分大小寫。
輸入資料將保證結果是存在且唯一的。
輸入格式
第一行是兩個整數 n 和 m。
接下來的 n+m 行,每行包含乙個句子。
前 n 行代表段落中的句子,後 m 行表示查詢。
輸出格式
輸出 m 行,每行代表查詢的結果。
這題思路感覺挺簡單的,就是要設計下資料結構,需要了解下c++裡面的一些資料結構,所以第一次還是做不出來。
//
// main.cpp
// toutiao
//// created by cicie sun on 2017/10/13.
//#include
#include
#include
#include
using
namespace
std;
int main()
word="";
}else
if(str[i]!=' ')
}if(word.size()>0)// 最後乙個單詞,可能最後乙個單詞後沒有空格
sentence.push_back(tmp);
}//處理需要匹配的句子
for (int k=0; kcin,str);
unordered_set
tmp;
tmp.clear();
string word ="";
for (int i=0; iif(str[i]==' ')
word="";
}else
if(str[i]!=' ')
}if(word.size()>0)// 最後乙個單詞,可能最後乙個單詞後沒有空格
word="";
int index = 0, mx =0;
// 在待輸入的句子裡找匹配
for (int i=0 ; iint count =0;
for (auto it =tmp.begin(); it!= tmp.end(); it++)//對輸入的這個句子的單詞遍歷
}if(count>mx)
}cout
0;}
2017 08 22 今日頭條筆試題
有乙個值得分享的地方,是x排序之後對應y的問題 我用了乙個很大的陣列,以x為索引,y為陣列值,不需要用到map。其實也是因為我懶不想去學map操作了,下次試試用map。include include include using namespace std int main cin n x.clear...
或與加(今日頭條筆試)
給定 x,k 求滿足 x y x y 的第 k 小的正整數 y 是二進位制的或 or 運算,例如 3 5 7。比如當 x 5,k 1時返回 2,因為5 1 6 不等於 5 1 5,而 5 2 7 等於 5 2 7。輸入描述 每組測試用例僅包含一組資料,每組資料為兩個正整數 x k。滿足 0 x k ...
今日頭條筆試題(一)
一列火車有n個車廂標記為1,2,3,4,5,6 n 現在因為某些原因,需要調整車廂的相對順序 例如需要將車廂順序調整為2,3,1,4,5,6 n 由於車廂龐大,且車廂只能停留在鐵軌上,所以不能隨心所欲的調整相對順序 現在只能利用兩條並行的鐵軌對車廂的順序進行調整 例如原序列為1,2的車廂 車廂1進入...