给定一个二进制字符串,例如 10101011111001,我想删除第一个零(在上述情况下为第二个),如果没有 0,则删除任何 1,因此上述字符串的输出将为 1101011111001。
如果我这样做使用
for( int i = 0 ; i < siz-1 ; i++ ){
if( s[i] =='0' && bit ==1) {
bit = 0;
}else {
ans = ans + s[i];
}
}
if( bit == 1 ) {
cout << ans <<endl;
}else {
ans = ans + s[siz-1];
cout << ans <<endl;
}
上面的解决方案给了我 TLE 和使用擦除功能的解决方案正常工作,是什么导致了这种行为?
注意:字符串的大小最大为 10^5