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

首頁 > 學院 > 開發設計 > 正文

拼接最小字典序練習

2019-11-08 03:28:21
字體:
來源:轉載
供稿:網友

對于一個給定的字符串數組,請找到一種拼接順序,使所有小字符串拼接成的大字符串是所有可能的拼接中字典序最小的。 給定一個字符串數組strs,同時給定它的大小,請返回拼接成的串。 測試樣例: [“abc”,”de”],2 “abcde”

這道題目不能直接對字符串進行排序輸出,比如 b ,ba,若按照字典序為 bba 實際的最小輸出為bab,所以這個需要重新定義兩個字符串的大小若str1+str2

class PRior {public: string findSmallest(vector<string> strs, int n) { if(strs.empty()) return string{}; quicksort(strs,0,n-1); string res{}; for(auto c:strs) res+=c; return res; } void quicksort(vector<string> &strs,int begin,int end) { if(begin<end) { int mid=quicksortmove(strs,begin,end); quicksort(strs,begin,mid-1); quicksort(strs,mid+1,end); } } int quicksortmove(vector<string> &strs,int begin,int end) { int l=begin; int r=end; string x=strs[l]; while(l<r){ while(l<r&&!comparestrless(strs[r],x)) --r; strs[l]=strs[r]; while(l<r&&!comparestrmore(strs[l],x)) ++l; strs[r]=strs[l]; } strs[l]=x; return l; } bool comparestrless(string a,string b) { if(a+b<b+a) return true; return false; } bool comparestrmore(string a,string b){ if(a+b>b+a) return true; return false; }};
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新安县| 龙井市| 大余县| 淄博市| 上犹县| 喀什市| 清水河县| 本溪| 紫云| 五华县| 垣曲县| 东乌| 庆阳市| 常山县| 成都市| 苏州市| 永兴县| 白河县| 腾冲县| 康保县| 洛川县| 梁平县| 福泉市| 平湖市| 浦江县| 花莲市| 新乡县| 高尔夫| 普宁市| 且末县| 兴化市| 凭祥市| 陆良县| 基隆市| 长治市| 湾仔区| 芜湖县| 凉山| 黄梅县| 朝阳县| 黎平县|