在C#中,假設你有一個字符串數組,其中只包含字符 '0' 和 '1':有效確定數組中的哪些字符串是其他字符串的子字符串?
string[] input = { "0101", "101", "11", "010101011" };
你想建立一個功能:
public void IdentifySubstrings(string[] input) { ... }
那將產生如下:
"0101 is a substring of 010101011"
"101 is a substring of 0101"
"101 is a substring of 010101011"
"11 is a substring of 010101011"
而你不能夠使用內置的字符串功能(如String.Substring)。
如何有效地解決這個問題?當然你可以通過暴力破解它,但它只是覺得應該有一種方法來實現它與一棵樹(因爲唯一的值是0和1,感覺像一棵二叉樹應該適合某種方式)。我已經讀了一些關於後綴樹的事情,但我不確定這是否是正確的道路。
您能想到的任何有效的解決方案?
這是功課? – Oded 2010-06-09 19:43:14
或者也許是面試問題?事實上,這感覺就像我經常讓人們在進入之前回答的問題,因爲「你不能使用內置的字符串功能」部分。 – 2010-06-09 19:45:19
@Oded - 第 @Tim C - 是的,它通常用於面試問題。 – 2010-06-09 19:46:01