test

mac2022-06-30  131

#include<cstdio>#include<cstring> using namespace std;char a[10000005];int tmp[30],pd,s,ans=100,n,cha;//tmp数组每次加到2就和前一个比对,然后回1,来回往复代替vector int main(){    gets(a);    n=strlen(a);    for(int i=0;i<n;i++)    {        tmp[a[i]-'A']++;        if(tmp[a[i]-'A']==2)        {            pd=1;            for(int j=s;j<i;j++)            {                if(a[i]==a[j])                {                    cha=i-j;                    if(cha<ans)//两个元素差的最小值                     {                        ans=cha;                    }                    s=j+1;//从下一个开始再次比对最小值                     break;                }            }            tmp[a[i]-'A']=1;        }    }    if(pd==0)    {        printf("-1\n");        return 0;    }    printf("%d\n",ans);    return 0;}

转载于:https://www.cnblogs.com/vercont/p/10920122.html

最新回复(0)