(程式設計師面試題)字串處理之尋找最大不重複子串

2021-06-19 05:56:16 字數 737 閱讀 3244

#include #include #define maxline 4096

int is_str_has_same_char(const char *str)

int get_max_no_same_sub_str(const char *str, char *result)

memset(temp, 0x00, maxline);

} }return -1;

}int main(int argc, char *argv)

printf("not found\n");

return -1;

}

測試結果如下:

cheny@cheny-laptop:~$ ./get_max_no_same_sub_str abcabcdd

result = abcd

cheny@cheny-laptop:~$ ./get_max_no_same_sub_str aaaaa

result = a

這個問題可以分為兩個小問題來解決:

(1)字串分割,即分割出字串的所有子串,長度由大到小的分割。

(2)確認分割出來的子串中判斷是否有重複的字元,這個建立了乙個256長度的陣列,下標表示字元的值,值表示字元的數目,這個演算法在字元統計裡面算乙個比較巧妙的實現,一旦沒有重複的字元則立即終止運算,因為子串是由長到短的分割,所以當前子串即為最長不重複子串。

寫的不好請大家指正,謝謝了!

(程式設計師面試題)字串處理之獲取字串的所有子串

include include include define maxline 4096 void get all sub str const char str,char result int main int argc,char argv return 0 執行結果如下 cheny cheny la...

字串處理面試題 字串包含問題

為了準備面試中出現的字串問題,我決定做乙個系列,以我自己的標準,將自己認為比較優秀的字串面試題整理一些。希望這樣做能夠形成解決字串問題的一般思路,能夠比較高效地解決字串問題。這個問題是看了 感謝 v july v 問題描述 有兩個任意字串sting a,sting b,實現如下函式 int cont...

程式設計師面試題精選100題 字串的排列 演算法

題目 輸入乙個字串,列印出該字串中字元的所有排列。例如輸入字串 abc,則輸出由字元a b c所能排列出來的所有字串 abc acb bac bca cab和 cba。分析 這是一道很好的考查對遞迴理解的程式設計題,因此在過去一年中頻繁出現在各大公司的面試 筆試題中。我們以三個字元abc為例來分析一...