今日頭條筆試

2021-08-09 09:42:09 字數 1321 閱讀 3577

【問題描述】給定乙個段落,由 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進入...