该算法具有O(M)个空间复杂度和O(N)个时间复杂度(时间不取决于字母大小M):
- 推进第一个迭代器,并为每个处理的字母增加计数器。当所有26个计数器都不为零时停止。
- 推进第二个迭代器,并减少每个处理过的字母的计数器。当这些计数器中的任何一个为零时停止。
- 使用迭代器之间的差异来更新最新结果,然后继续执行步骤1。
如果存储字符串中的位置而不是字符计数器,则可以稍微改进此算法。在这种情况下,步骤2应该只读取这些位置并将其与当前位置进行比较,而步骤1应该更新这些位置并(大部分时间)搜索文本中的某些字符。



