编程题目 高手进

来源:百度知道 编辑:UC知道 时间:2024/05/27 04:03:59
求一个字串中的全部不相同的子串,大小写不分

面试题目 急

这个问题有两种解法,不同的解法有不同的好处。

假如字符串里面重复的字符串数量非常之多,那么你就该按一个一个迭代过去,一个旧的数组,一个新的数组,往新的数组中加入的时候,都要把前面的for一遍,虽然是个接近O(n2)级别的算法,但是因为重复的太多,所以实际的情况远比这样好。

另外一种就是字符串中重复的不多,那可以先统计出字符串中总的子串数量,然后建立散列表,不同的值散列到的地方是不一样的,假如有两个散列到同一个值,判断是偶尔的冲突还是因为子串本身一样。这个速度还是可以的,因为你已经预先计算出了子串数量,所以实际上不需要Rehash,那么程序中也就没有太慢的地方了。

先把所有子串拿出来,然后再去掉相同的

用for 一个个找 碰到相同的continue