日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Alibaba笔试题:根据关键字求最短摘要字串

發(fā)布時間:2025/4/16 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Alibaba笔试题:根据关键字求最短摘要字串 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

? ? ?Alibaba筆試題:給定一段產(chǎn)品的英文描述,包含M個英文字母,每個英文單詞以空格分隔,無其他標點符號;再給定N個英文單詞關鍵字,請說明思路并編程實現(xiàn)方法String extractSummary(String description,String[] key words)目標是找出此產(chǎn)品描述中包含N個關鍵字(每個關鍵詞至少出現(xiàn)一次)的長度最短的子串,作為產(chǎn)品簡介輸出。(不限編程語言)20分。

  解:簡化題目:從一個字符串A中找出包含另一個字符串B所有字母的最小字串。(比A短,并每個字母只出現(xiàn)一次;這里先排除了關鍵詞多次出現(xiàn)的情況,這種情況只需稍微改動即可),考慮使用兩個指針p、q指向A起始位置,遍歷指針p,

1、使得q到p之間包含了B中的所有字母。這時可以是使用一個數(shù)組來記錄p中走過A中遇到B中字母出現(xiàn)的次數(shù)。這樣當所有字母全非0的時候,即可。這時未能保證q到p是以*p結尾子句中包含所有字母的最短的一個。

2、此時走動q指針,另q走到恰好q到p是以*p結尾子句中包含所有字母的最短的一個。

如A=dccdaadc B=cda

經(jīng)過第一步,q指向A[0],p指向A[4] 計數(shù)數(shù)組 221 字串dccda并不是以A[4]結尾子句中最短的包含B的子串

然后,走q指針。走過A[1]時,計數(shù)數(shù)組121,即此時還是包含了B(ccda),所有繼續(xù)再走;直到A[2]時,計數(shù)數(shù)組為111,下一個將出現(xiàn)不能包含B的全部字母所以此時A[2]~A[4]為以A[4]結尾子句中包含所有字母的最短的一個。

3、然后記錄相應信息。q走過一個,使得q~p未能包含全部的B,這時又回到了第一步,直至整個字符串檢測完畢。

這里的代碼并未考慮關鍵字出現(xiàn)多次的情況。這種情況只需要稍做改動即可;

1 #include <iostream> 2 3 using namespace std; 4 5 6 //p指向的單詞(空格結尾或'\0'),在關鍵詞組中是否存在,存在則相應計數(shù);當所有關鍵字計數(shù) 7 //不為0,即包含了所有的關鍵字了,以*flag回傳1 8 //返回單詞的后一個位置(若為'\0'則返回'\0') 9 char* countkw_add(int cnt[], char *p, char * kw[], int n, int *falg) // 10 { 11 char *q; 12 char tmp[50]={0}; 13 q = tmp; 14 while(*p && *p!=' ')*q++ = *p++; 15 16 *q = '\0'; 17 18 for (int i=0; i<n; i++) 19 { 20 if (strcmp(tmp, kw[i])==0) 21 { 22 cnt[i]++; 23 for(int j=0; j<n; ++j) 24 { 25 if (!cnt[j]) 26 { 27 break; 28 } 29 } 30 if (j==n) 31 { 32 *falg = 1; //包含了所有的關鍵字 33 } 34 break; //找到 35 } 36 } 37 while(*p && *p++!=' '); // 38 39 return p; 40 } 41 //由于只有計數(shù)數(shù)組cnt的數(shù)據(jù)全非零時才調(diào)用此函數(shù) 42 //p指向的單詞(空格結尾或'\0'),在關鍵詞組中是否存在,存在則減去相應計數(shù);當存在關鍵字計數(shù) 43 //不為0,即未包含所有的關鍵字了,以*flag回傳0 44 //返回單詞的后一個位置(若為'\0'則返回'\0') 45 char* countkw_sub(int cnt[], char *p, char * kw[], int n, int *falg) 46 { 47 char *q; 48 char tmp[50]={0}; 49 q = tmp; 50 while(*p && *p!=' ')*q++ = *p++; 51 52 *q = '\0'; 53 54 for (int i=0; i<n; i++) 55 { 56 57 if (strcmp(tmp, kw[i])==0) 58 { 59 cnt[i]--; 60 61 if (cnt[i]==0) 62 { 63 *falg = 0; //缺關鍵字kw[i] 64 } 65 break; //找到 66 } 67 } 68 while(*p && *p++!=' '); // 69 70 return p; 71 } 72 73 void extractSummery(char *des, char * keywords[], int n, char **beg, char **end) 74 { 75 char *p,*q; 76 77 int *cnt; 78 int minlen=strlen(des); // 79 *beg = NULL; 80 *end = NULL; 81 82 cnt = (int *)malloc(sizeof(int)*n); 83 memset(cnt, 0, sizeof(int)*n); 84 85 86 q= des; 87 while(*q!='\0' && *q==' ')q++; 88 89 p = q; 90 int fulled=0; 91 92 while(*p!='\0') 93 { 94 95 p = countkw_add(cnt,p,keywords,n, &fulled); 96 97 while(*p && *p==' ')p++; 98 99 if (fulled) //包含了所有的關鍵字 100 { 101 char *tmp; 102 tmp = q; 103 while(fulled) 104 { 105 q = tmp; //記錄上一次 106 tmp= countkw_sub(cnt,tmp,keywords,n, &fulled); 107 } 108 109 if (p-q<minlen) //發(fā)現(xiàn)更小的,則更新 110 { 111 minlen = p-q; 112 *beg = q; 113 *end = p; 114 } 115 //while(*q && *q!=' ')q++; 116 q = tmp; 117 while(*q && *q==' ')q++; //指向下一個詞 118 } 119 120 121 122 } 123 } 124 125 126 127 128 int main() 129 { 130 char des[] = "aefo aec egne a se a fe a aec ve fjfj as lel"; 131 132 char *kw[] = {"aec" ,"a", "fjfj"}; 133 char *b,*e; 134 135 extractSummery(des,kw,3,&b,&e); 136 137 for(char *p=b; p<e; p++) 138 { 139 cout<<*p; 140 } 141 142 cout<<endl; 143 144 return 0; 145 }

?

---恢復內(nèi)容結束---

轉載于:https://www.cnblogs.com/legendmaner/archive/2013/03/17/2965030.html

總結

以上是生活随笔為你收集整理的Alibaba笔试题:根据关键字求最短摘要字串的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美日韩免费高清一区色橹橹 | 成年人在线观看视频网站 | 四季av在线一区二区三区 | 国产av一区精品 | 久久手机视频 | 国产一区在线视频 | 91视频最新入口 | 亚洲大片在线观看 | 伦理片一区二区三区 | 五月天开心网 | 丰满岳妇乱一区二区三区 | 丰满人妻一区二区三区53视频 | 国产成人精品视频在线观看 | 免费在线成人网 | av鲁丝一区鲁丝二区鲁丝三区 | 少妇一级淫片免费视频 | 91精品国产一区二区无码 | 日本伊人影院 | 久久夜色精品国产欧美乱极品 | 国产精品欧美亚洲 | 97超碰人人| 奶水喷溅 在线播放 | 性色欲网站人妻丰满中文久久不卡 | 91在线小视频| h视频免费在线观看 | 日本美女操 | 欧美大片18 | 四虎影院污 | 日韩欧美一二三区 | 国产成人精品一区二区色戒 | 在线视频亚洲欧美 | 激情视频在线观看免费 | 美女被到爽高潮视频 | 国产一级做a爰片在线看免费 | 开心激情深爱 | 狠狠躁狠狠躁视频专区 | 中文字幕23| 亚洲涩涩图 | 青青青青青草 | 野花视频免费在线观看 | 日韩三级一区二区三区 | 九九热最新 | 打开免费观看视频在线播放 | 中文字幕av有码 | 免费污污视频在线观看 | 中文字幕淫 | 亚洲天堂中文字幕 | 麻豆观看 | 国产自产视频 | 国产青青在线 | 雪花飘电影在线观看免费高清 | 日韩精品久久久久久久的张开腿让 | 欧美激情免费在线观看 | 精品久久久中文字幕人妻 | av在线a | 香港三日本三级少妇66 | 亚洲爱爱网 | 男男肉耽高h彩漫 | 极度诱惑香港电影完整 | 五月婷婷深爱 | 边添小泬边狠狠躁视频 | 日日操夜夜操天天操 | 新天堂av | 天天操免费视频 | 农村妇女精品一区二区 | 四虎在线影院 | 超碰97国产精品人人cao | 欧美三级午夜理伦三级 | 中文字幕日韩一级 | 亚洲天堂2021av | 超碰伦理 | 91视频播放器 | 日韩h在线 | 日本欧美三级 | 欧美视频在线看 | 永久精品视频 | 99在线观看免费 | 夜夜夜综合 | 精品一区二区三区视频 | 中文字幕有码视频 | 成人av毛片 | 婷婷综合社区 | 久久视频在线播放 | 成熟妇人a片免费看网站 | 天天综合天天做天天综合 | 可以看黄色的网站 | 日日射天天操 | 国产视频一 | 色四月| 成年人精品视频 | 日本护士╳╳╳hd少妇 | 精品无码av一区二区三区不卡 | 亚洲又粗又长 | 久久中文一区 | 色妞www精品视频 | www.com毛片 | 国产资源站 | 亚洲视频手机在线 | 欧美激情视频一区二区三区 |