题解 | #数组中两个字符串的最小距离#
数组中两个字符串的最小距离
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;
}
小天才公司福利 1152人发布