UVA 1588 Kickdown 簡單字串匹配

2021-07-13 18:49:49 字數 561 閱讀 9893

一道簡單題,想的不到位,做了好久···呵呵一下自己的poor能力···

問題出在f函式中注釋部分

想當然認為短的去匹配長的串···

然而反例是

長的匹配短的結果是7

短的匹配長得結果是8

注釋掉後就對了···

之前主函式中交換是因為考慮到了如下情況

如果不交換輸出6 交換後輸出5

剩下的就是f函式中for的實現了

思路是逐位匹配,如果匹配不了就返回到原來位置+1的地方繼續匹配知道 迴圈終止 繼而判斷迴圈因何終止 可得最終結果

//#define local

#include #include #include #include #include #include #include #include using namespace std;

int f(string &s1, string &s2){

string s;

int i,j;

//if(s1.length()>s1>>s2){

int min=f(s1,s2);

cout<<(min

UVa1588 Kickdown 換抵擋裝置

給出兩個長度分別為n1,n2且每列高度只為1或2的長條,需要將它們放入乙個高度為3的容器,求出能夠容納他們的最短容器長度。模擬插入,從第乙個介面開始插,如果不滿足條件就跳到下乙個介面,滿足條件時跳出函式輸出答案即可。includeusing namespace std int slo char a,...

UVa1588 Kickdown 換低擋裝置

題目鏈結 題意 給出兩個長度分別為n1,n2 n1,n2 100 且每列高度只為1或2的長條。需要將它們放入乙個高度為3的容器 如圖所示 問能夠容納它們的最短容器長度。分析 具體請看 1 max len1,i len2 中包含的兩種情況。len1長度足夠,另一種len1長度不夠。2 本來的情況是左右...

UVa 1588 換抵擋裝置

題目大意是說,兩個槽能夠插在一起,並保證每一列的高度不高於3,保證最短長度。思路很簡單,取短字串遍歷長字串的每乙個位置,紀錄下位置,並取最短即可。習題3 11 換抵擋裝置 void caculate17 else int minlen int strlen min arr int maxlen in...