バイナリ文字列を指定すると、ex 10101011111001 の場合、最初のゼロ (上記の場合は 2 番目のゼロ) を削除し、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 です