攜程技術類2018屆春招筆試程式設計

2021-07-30 10:11:58 字數 1741 閱讀 5870

攜程技術類2018屆春招 

安卓開發工程師

程式設計題|20分

1/1有序字串搜尋

時間限制:c/c++語言 1000ms;其他語言 3000ms

記憶體限制:c/c++語言 204800kb;其他語言 729088kb

題目描述:

給定一些字串,請寫乙個演算法,從中搜尋出包含您輸入的字串行的那些字串,按匹配度的高低排序輸出。沒有任何乙個字串匹配上,輸出-1。

字串源source 如下:

"ab",

"abc",

"acb",

"abcd",

"adbcf",

"abdcf",

"abdc",

"abdfcg",

"abdfgc",

"abdefg",

"gabcefg"

若輸入查詢的有序字串行為"abc",則運算結果如下(請注意結果的排序規則)。

abc         (匹配    abc)(完全匹配上,匹配度最大)

abcd      (匹配    abc.)

abdc      (匹配    ab.c)

abdcf    (匹配    ab.c.)

abdfcg (匹配    ab..c.)

abdfgc (匹配    ab...c)

adbcf    (匹配   a.bc.)

gabcefg(匹配  .abc...) 輸入

您需要查詢的字串

樣例輸入

abc

樣例輸出

abc 

abcd 

abdc 

abdcf  

abdfcg 

abdfgc 

adbcf    

gabcefg

第一次這麼快ak啊~~才8點20多。。。嗯,等考完再把**放出吧~~

一開始沒有看懂題目,看懂了就好辦了。我是用暴力匹配,匹配上了標記為1,沒有匹配上標記為0,補全9位(後面是補1)。

比如給的例子abc,那麼對於我來說就是

abc            111111111

abcd         111011111

abdc         110111111

abdcf        110101111

abdfcg     110010111

abdfgc     110001111

adbcf       101101111

gabcefg   011100011

所以其實就是暴力的去匹配resources,然後轉成01串,排序輸出就ok~

見**~~

#includeusing namespace std;

struct node;

vector < string > res;

vector <  node > v;

bool cmp( const node &v1, const node &v2)//注意:本函式的引數的型別一定要與vector中元素的型別一致

/*請完成下面這個函式,實現題目要求的功能*/

/*當然,你也可以不按照下面這個模板來作答,完全按照自己的想法來 ^-^ */

/******************************開始寫********************************/

void dofilter(string a)

攜程2021春招筆試

就2道演算法題 因為第二題不會,要用ac自動機,沒寫過就放棄了。第一題 為了尋找最佳拍檔,我們定義兩人名字的緣分值 兩人名字左對齊後,對應位置字的拼音的緣分值之和。對於兩個拼音s1 s2,通過剔除一些字元使得留下的子串一模一樣,被剔除字元之和的最小值即為兩個拼音的緣分值。求給定兩人名字的緣分值。提交...

20屆攜程秋招筆試

ab cd 第一次翻轉 bacd dcab思路 非右括號入棧,右括號出棧直到遇到左括號,然後剛出棧的除左括號入棧 public static string reverse string str else s while stack.isempty stack.peek if stack.isempt...

2020屆360春招筆試程式設計題2020 3 24

a和b兩個人在 現在有乙個 箱,裡面有n張中獎票,m張不中獎票。a和b輪流從中抽一張獎票出來。如果有人抽到中獎票就結束,抽到中獎票的人勝利。抽過的獎票會被丟棄。額外的,b每次抽後,會再次抽取一張票並丟棄掉 這張票中獎不算b勝利 現在,a先抽,請問a的勝率,保留4位小數後輸出。如果兩人到最後也沒有抽到...