一,題目:有n
個長為m+1
的字串,
如果某個字串的最後
m個字元與某個字串的前
m個字元匹配,則兩個字串可以聯接,問這n
個字串最多可以連成乙個多長的字串,如果出現迴圈,則返回錯誤。
二,分析:
將各個字串作為乙個節點,首尾鏈結就好比是一條邊,將兩個節點連線起來,於是問題就變成乙個有關圖的路徑長度的問題。鏈結所得的字串最長長度即為從圖的某個節點出發所能得到的最長路徑問題,與最短路徑類似,可以應用弗洛伊德演算法求解。對於迴圈,即可認為各個節點通過其他節點又回到自己,反應在路徑長度上,就表示某個節點到自己節點的路徑大於零(注:初始化個節點到自己的長度為零)。
三,原始碼
public class maxcatenate ;
maxcatenate(text); }
public static void maxcatenate(string text)
}for(int i=0; i1)
int max = 0;
for(int i=0; i
問題 A 字串連線
不借用任何字串庫函式實現無冗餘地接受兩個字串,然後把它們無冗餘的連線起來。每一行包括兩個字串,長度不超過100。可能有多組測試資料,對於每組資料,不借用任何字串庫函式實現無冗餘地接受兩個字串,然後把它們無冗餘的連線起來。輸出連線後的字串。abc def abcdef include const in...
問題 A 字串連線
題目描述 不借用任何字串庫函式實現無冗餘地接受兩個字串,然後把它們無冗餘的連線起來。輸入每一行包括兩個字串,長度不超過100。輸出可能有多組測試資料,對於每組資料,不借用任何字串庫函式實現無冗餘地接受兩個字串,然後把它們無冗餘的連線起來。輸出連線後的字串。樣例輸入 copy abc def 樣例輸出...
codeup 問題 A 字串連線
題目描述 不借用任何字串庫函式實現無冗餘地接受兩個字串,然後把它們無冗餘的連線起來。輸入 每一行包括兩個字串,長度不超過100。輸出 可能有多組測試資料,對於每組資料,不借用任何字串庫函式實現無冗餘地接受兩個字串,然後把它們無冗餘的連線起來。輸出連線後的字串。樣例輸入 copy abc def 樣例...