描述:
在一个字符串中删除其前面已经出现过的字符。
要求:
时间复杂度O(N)
空间复杂度O(1)
一个解决方安:
1、用一个bitMap来记录及判断当前字符是否在前面已经出现过;
2、用一个count记录前面总共出现的重复的并删除的元素;
3、顺序遍历字符串(假设为source)直到到达空字符;
4、如果当前字符在前面没有出现过,则将其向前移动count个位置,指针指向下一个字符然后转到步骤3
5、否则,++count,指针指向下一个字符然后转到步骤3;
6、将最后的空字符向前移动count个位置,并返回字符串。
note:传入的字符串必须能在其上修改,不能传入const字符串。
原码见:https://github.com/erliang/algorithmsother
第一次更新:2012 09 11 字符串中字符去重