腾讯面试题假设两个字符串中所含有的字符和个数都相同我们就叫这两个字符串匹配,比如:abcda和adabc,由于出现的字符

1个回答

  • 这个算法利用计数已经达到O(n)的时间复杂度了,只对两个输入做了一遍扫描.空间复杂度也有所改进,从两个数组减少为一个数组,提前判断也做了,我想象不到还有什么算法能够更快.

    只是数组256这里有点小问题.使用数组256表示作者希望能对0x80之后的字符进行计数,但这句话“cnt[ *p1++ ]++”有问题:*p1如果大于0x80,那么它是一个负数,这会造成错误的元素被计数,应该加个unsigned char做下限定.