题解 | #数组中两个字符串的最小距离#

数组中两个字符串的最小距离

https://www.nowcoder.com/practice/2c6a0a8e1d20492f92941400036e0890

#include <iostream>
#include<algorithm>
using namespace std;
const int N =1e5+10;
string strs[N];
int main() 
{
    int n;
    cin>>n;
    
    string s1,s2;
    cin>>s1>>s2;
    int prev1=-1,prev2=-1;

    int res=0x3f3f3f3f;
    for(int i=0;i<n;i++)
    {
        cin>>strs[i];
    }
    for(int i=0;i<n;i++)
    {
        if(strs[i]==s1)
        {
            prev1=i;
        }
        else if(strs[i]==s2)
        {
            prev2=i;
        }
        if(prev2!=-1&&prev1!=-1)
        {
            res=min(res,abs(prev2-prev1));
        }
        

    }
    if(res==0x3f3f3f3f)
        cout<<-1;
    else
        cout<<res;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务