b题差一个数据点过。。。

有无佬看看错哪里了

#include<iostream>
#include<map>
#include<algorithm>


using namespace std;

typedef pair<int,int> PII;

const int N=1e5+100;

char s[N];

int main()
{
    int t;
    cin>>t;
    int n;
    
    while(t--)
    {
//         mp.clear();
        map<char,PII>mp;
        scanf("%d",&n);
      
        for(int i=1;i<=n;i++) cin>>s[i];
        int dis=1e8;
        for(int i=1;i<=n;i++)
        {
            if(mp[s[i]].first==0)
            {
                mp[s[i]].first=i;
            }
            
            if(i!=mp[s[i]].first)
            {

                dis=min(dis,i-mp[s[i]].first-1);
                dis=min(dis,n-i+mp[s[i]].first-1);
              
            }
            
            if(mp[i].second!=0)
            {
               
                 
                dis=min(dis,i-mp[s[i]].second-1);
                dis=min(dis,n-i+mp[s[i]].second-1);
                
            }
            
            mp[s[i]].second=i;
            
            
        }
        
        if(n==2) cout<<"-1"<<endl;
        
        else
        {
            if(dis==1e8) cout<<"-1"<<endl;
        
        else cout<<dis<<endl;
        }
        
        
        
       
    }
    
    return 0;
}

全部评论
找到错误了,哈哈哈哈哈哈我艹草草草草
点赞 回复 分享
发布于 2024-12-09 23:29 香港

相关推荐

不愿透露姓名的神秘牛友
07-15 17:24
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务