今天做携程的笔试题,附加编程题是删除一行字符串里面的标点符号,关于一边遍历一边删除的问题,坑踩到好几次了,真是好气啊,明明很简单的问题,写下来防止自己忘了
自己忘了else的条件了,结果最后老不出结果,一调试发现死循环了,真的好气啊
bool f(vector<char> &str) {
int end = str.size();
bool state = false;
auto it = str.begin();
while (it != str.end())
{
if (ispunct(*it))
{
state = true;
it = str.erase(it);
}
else
it++;
}
return state;
}