引用:
作者: tianxiawuzui sorry啊,我能想到的方法就是遍历每一个字符,但是又好像和要求不符:在字符串中检查的字符尽可能少;
没什么更高效的算法,所以SOS各位大大。树MS可以尽可能少的检查字符,虽然复杂了一点。
大大们,还有更好的办法吗? |
想想看,假设字符串里面还有 m 个字符你从来没有检查过,那么在什么情况下你可以不用检查这 m 个字符,就能确定整个字符串中最长的空白串在哪里呢?很显然,只有一种可能:你已经找到了一个空白串,长度大于 m 。嗯嗯,下面就看你怎么最大限度地利用这种可能,尽量减少检查字符的需要了。
唔,不过有一点必须指出:从算法分析的角度,不存在一个算法能够完全避免检查每一个字符。最简单的例子,给你一个不存在空格的字符串,你只有在检查每一个字符之后,才能确定这一点。