37 最長字串鏈結

2021-06-25 21:14:57 字數 737 閱讀 6539

/*

37.有n長為 m+1 的字串,

如果某個字串的最後 m 個字元與某個字串的前 m 個字元匹配,

則兩個字串可以聯接,

問這 n個字串最多可以連成乙個多長的字串,如果出現迴圈,則返回錯誤。

將各個字串作為乙個節點,首尾鏈結就好比是一條邊,將兩個節點連線起來,

於是問題就變成乙個有關圖的路徑長度的問題。

鏈結所得的字串最長長度即為從圖的某個節點出發所能得到的最長路徑問題,

與最短路徑類似,可以應用弗洛伊德演算法求解。

對於迴圈,即可認為各個節點通過其他節點又回到自己,反應在路徑長度上,

就表示某個節點到自己節點的路徑大於零

*/#include#include#includeusing namespace std;

#define n 14

//判斷兩個字元是否連線

bool iscon(string str1,string str2)

} //有環路

for(i=0;i1)

int main()

; maxstring(str,14);//環

string str2=;

maxstring(str2,4);//bcdef 5

string str3=;

maxstring(str3,8);//qwertyu 7

return 0;

}

37 最長字串鏈結

有n個長為m 1的字串,如果某個字串的最後m個字元與某個字串的前m個字元匹配,則兩個字串可以聯接,問這n個字串最多可以連成乙個多長的字串,如果出現迴圈,則返回錯誤。成乙個有關圖的路徑長度的問題。鏈結所得的字串最長長度即為從圖的某個節點出發所能得到的最長路 徑問題,與最短路徑類似,可以應用弗洛伊德演算...

最長字串鏈結

有n個長為m 1的字串,如果某個字串的最後m個字元與某個字串的前m個字元匹配,則兩個字串可以聯接,問這n個字串最多可以連成乙個多長的字串,如果出現迴圈,則返回錯誤。思路 分析一下,將各個字串作為乙個節點,首尾鏈結就好比是一條邊,將兩個節點連線起來,於是問題就變 成乙個有關圖的路徑長度的問題。鏈結所得...

37 反轉字串(簡單)

編寫乙個函式,其作用是將輸入的字串反轉過來。輸入字串以字元陣列 char 的形式給出。不要給另外的陣列分配額外的空間,你必須原地修改輸入陣列 使用 o 1 的額外空間解決這一問題。你可以假設陣列中的所有字元都是 ascii 碼表中的可列印字元。示例 1 輸入 h e l l o 輸出 o l l e...