1.数组中字符串的最小距离
题目链接
- 解题思路:
小技巧
✌:标记两个字符串是否被找到,每次找到一个字符串就更新一次答案来保证找到的是最小距离。
- 实现代码:
#include <iostream>
using namespace std;int main() {int n;cin >> n;string str1, str2;cin >> str1 >> str2;int ptr1 = -1, ptr2 = -1, ans = 1e5 + 10;// 每找到一个字符串就更新一次bool flag1 = false, flag2 = false;string str;for (int i = 1; i <= n; i ++){cin >> str;if (str == str1){ ptr1 = i;flag1 = true;}else if (str == str2){ptr2 = i;flag2 = true;}if (flag1 && flag2)ans = min(abs(ptr2 - ptr1), ans);}if (ans == 1e5 + 10)cout << -1 << endl;elsecout << ans << endl;return 0;}