lbc20070331 @ 2021-10-14 21:24:37
#include<bits/stdc++.h>
using namespace std;
int a[100001];
int sum=0;
int main()
{
int n;
cin>>n;
if(n<0){
cout<<"-";
n=abs(n);
}
while(n>0){
int s=n%10;
a[sum++]=s;
n=n/10;
}
for(int i=0;i<=sum-1;i++){
if(a[i]==0){
if(a[i-1]!=0&&a[i+1]!=0) cout<<a[i];
}
else cout<<a[i];
}
return 0;
}
by coderJT @ 2021-10-14 21:31:32
前导0的去除方式有问题。
这样的话连续两个及以上的非前导0也会被屏蔽掉,而且有数组越界的可能性。
可以打一个flag,标记是否输出过非0数字,用来判断是否需要除去0。
by lbc20070331 @ 2021-10-14 22:05:29
@coderJT 感谢大佬,我AC了