gpt4 book ai didi

c++ - 删除二进制字符串中的第一个 0

转载 作者:行者123 更新时间:2023-11-28 07:50:04 24 4
gpt4 key购买 nike

给定一个二进制字符串,对于 ex 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

最佳答案

pos = s.find('0');
if (pos == string::npos) {
result = s.substr(1);
} else {
result = s.substr(0, pos) + s.substr(pos+1);
}

关于c++ - 删除二进制字符串中的第一个 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14010539/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com