C++ code
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<string>
#include<cmath>
#include<iostream>
using namespace std;
int n;
char s[25];
void calc()
{
int i,j,r0=n,r5=n,ans=n;
for(i=n-1;i>=0;i--)
{
if(s[i]=='5')
{
if(r0<n)
{
ans=n-2-i;
break;
}
r5=i;
}
else if(s[i]=='2'||s[i]=='7')
{
if(r5<n)
{
ans=n-2-i;
break;
}
}
else if(s[i]=='0')
{
if(r0<n)
{
ans=n-2-i;
break;
}
r0=i;
}
}
printf("%d\n",ans);
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
scanf("%s",s);
n=strlen(s);
calc();
}
return 0;
}
python code
t=int(input())
for tt in range(0,t,1):
s=input()
n=len(s)
r0=n
r5=n
ans=n
i=n-1
while(i>=0):
ch=s[i]
if(ch=='5'):
if(r0<n):
ans=n-2-i
break
r5=i
elif(ch=='2' or ch=='7'):
if(r5<n):
ans=n-2-i
break
elif(ch=='0'):
if(r0<n):
ans=n-2-i
break
r0=i
i-=1
print(ans)
python的代码有什么问题吗?
为什么C++的AC,python的却WA了
题目大意是把一个整数删除某些位上的数,使其变为25的倍数,保证无前导零,问最少删几位数