[各种面试题] 删除字符中的b和ac

删除字符中的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;
}


你可能感兴趣的:([各种面试题] 删除字符中的b和ac)