滑动窗口题目

题目描述:

计算两个字符串str1和str2在给定的含有n个元素的字符串数组strs中出现的最短距离。

详细解释:

  1. 定义整数变量n,用于存储字符串数组strs的长度。
  2. 定义一个vector<string>类型的变量strs,用于存储输入的字符串。
  3. 定义两个字符串变量str1和str2,用于存储输入的两个字符串。
  4. 使用循环,从输入中读取字符串str1和str2,并将它们存储在str1和str2中。
  5. 使用循环,从输入中读取n个字符串,并将它们存储在strs中。
  6. 定义两个整数变量count1和count2,用于存储字符串str1和str2在strs中出现的下标。
  7. 定义一个整数变量ret,用于存储最短距离。
  8. 使用循环,遍历字符串数组strs。
  9. 如果当前字符串等于str1,则将count1设置为当前下标i。
  10. 如果当前字符串等于str2,则将count2设置为当前下标i。
  11. 如果count1和count2都不等于-1,则计算它们之间的距离,并将其与当前的ret进行比较。
  12. 如果ret等于n,则输出-1,表示没有找到最短距离。
  13. 否则,输出ret,表示最短距离。

具体代码:

cpp 复制代码
int main() {
	int n;
	cin >> n;
	vector<string> strs;
	string str1, str2;
	cin >> str1 >> str2;
	for (int i = 0; i < n; i++) {
		string str;
		cin >> str;
		strs.push_back(str);
	}

	int count1 = -1, count2 = -1;
	int ret = n;
	for (int i = 0; i < n; i++) {
		if (strs[i] == str1 ) {
			count1 = i;
		}
		if (strs[i] == str2 ) {
			count2 = i;
		}
		if (count1 != -1 && count2 != -1 ) {
			int count = abs(count1 - count2);
			
			ret = min(ret,count);
		}
	}
	if (ret == n)
		std::cout << -1;
	else
		std::cout << ret;

	

	return 0;
}

结果:

相关推荐
西农小陈14 分钟前
python-禁止抽烟
开发语言·python·算法
攻城狮7号3 小时前
【3.5】贪心算法-解优势洗牌(类田忌赛马问题)
c++·算法·贪心算法
苦学数据结构6 小时前
25版王道数据结构课后习题详细分析 第五章 树与二叉树 5.3 二叉树的遍历和线索二叉树 选择题部分
数据结构·考研·算法
心.c8 小时前
【数据结构】二叉树基础(带你详细了解二叉树)
数据结构·c++·算法
l9390355488 小时前
【JS】启动多任务排序(200) |思路参考+代码解析+课程表+有向图(C++)
数据结构·c++·算法
多思考少编码8 小时前
Codeforces Round 969 (Div. 2) 题ABC详细题解,包含(C++,Python语言描述)
c++·python·算法·codeforces·算法竞赛
冰暮流星9 小时前
动态规划法例题
算法·动态规划
桃酥4039 小时前
算法day17|如何求普通二叉树的众数
数据结构·c++·算法·leetcode·哈希算法
DelTTAA10 小时前
【LeetCode】刷题记录--单链表相关
算法·leetcode·职场和发展
秋风战士10 小时前
通信算法之230: 5G随机接入PRACH及长度计算
网络·经验分享·算法