无论如何都是要删除1个字符的,首先可以想到最好是去删0,如果没有0的话就删1即可,如果有0删最最高位的0,使得其他位的移动最少。
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string>
using namespace std;
int main()
{
string str;
cin >>str;
int pos = -1;
for(int i = 0;str[i];++i){
if(str[i] == '0'){
pos = i;
break;
}
}
if(pos != -1){
str.erase(str.begin() + pos);
bool f = false;
for(int i = 0;str[i];++i){
if(str[i] == '0' && !f) continue;
f = true;
putchar(str[i]);
}
if(!f) putchar('0');
}
else{
int len = str.length();
for(int i = 0;i < len - 1;++i){
putchar('1');
}
}
putchar('\n');
return 0;
}