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

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

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

#include <iostream>
#include <string>
#include <climits>
using namespace std;

int main()
{
    int n;
    string s1, s2, s;

    cin>>n;
    cin>>s1>>s2;

    int prev1 = -1,prev2 = -1,ret = 0x3f3f3f3f;
    for(int i = 0;i < n;i++){
        cin >> s;
        if(s == s1) // 去找前面最近的s2
        {
            if(prev2 != -1)
                ret = min(ret, i - prev2);
            prev1 = i;
        }
        else if(s == s2) // 去找前面最近的s1
        {
            if(prev1 != -1)
                ret = min(ret, i - prev1);
            prev2 = i;
        }
    }
    //if(ret == 0x3f3f3f3f) cout<<-1<<endl;
    if(prev1 == -1 || prev2 == -1) cout<<-1<<endl;
    else cout<<ret<<endl;
    return 0;
}

全部评论

相关推荐

Noob1024:一笔传三代,人走笔还在
点赞 评论 收藏
分享
评论
2
1
分享
牛客网
牛客企业服务