题目:给定一个仅包含0或1的字符串,现在可以对其进行一种操作,当有两个相邻的字符其中一个是0另外一个是1的时候可以消除这两个字符,这样的操作一直进行下去,直到找不到相邻的0和1为止,问这个字符串经历了操作以后的最短长度。
int min_strlen(string& s)
{
int i = 0;
while (i < (int)(s.size()-1))
{
if ((s[i] == '0'&& s[i + 1] == '1') || (s[i] == '1'&& s[i + 1] == '0'))
{
s.erase(i, 2);//删除从i下标开始的2个字符
i = 0;//每删除一对字符后,要将i移到开头(1100,11不构成删除,但是删除10后,前面的1和后面的0构成删除
//因此每删除一对后,要将下标移到开头)
}
else
{
i++;
}
}
return s.size();
}
题目:
[Tímù:]
名词
topic; subject; heading; examination question