删除字符中的b和ac
删除字符分析原题删除字符串中的“b”和“ac”,需要满足如下的条件:
1. 字符串只能遍历一次
2. 不能够使用额外的空间
例如:
1. acbac ==> ""
2. aaac ==> aa
3. ababac ==> aa
4. bbbbd ==> d
进一步思考:如何处理aaccac呢,需要做哪些改变呢?
int del(string& A) { int pTail=-1; for(size_t i=0;i<A.size();i++) { if(A[i]=='b') continue; else if (A[i]=='c') { if(pTail>=0&&A[pTail]=='a') pTail--; else A[++pTail]='c'; } else A[++pTail]=A[i]; } return pTail+1; }