蓝桥杯 子串简写(暴力)

题目:子串简写

代码1:

cpp 复制代码
#include<algorithm>
#include<iostream>
#include<cstring>
#include<queue>
#include<cmath>

using namespace std;

char c1,c2;
int k;
char s[100010];
int a[100010];
int b[100010];
int cnt;
int main()
{
	scanf("%d",&k);
	scanf("%s",&s);
	getchar();
	int n = strlen(s);
	scanf("%c",&c1);
	getchar();
	scanf("%c",&c2);
	int t1=0,t2=0;
//	cout<<c1<<' '<<c2<<endl;
	for(int i=0;i<n;i++){
		if(s[i] == c1){
			a[t1++] = i;
		}
		if(s[i] == c2){
			b[t2++] = i;
		}
	} 
	
	for(int i=0;i<t1;i++){
		for(int j=0;j<t2;j++){
			if(b[j] - a[i] >= k-1){
				cnt++;
			}
		}
	}
	cout<<cnt<<endl;
	return 0;
}

结果:

代码2:参考网络

cpp 复制代码
#include<algorithm>
#include<iostream>
#include<cstring>
#include<queue>
#include<cmath>

using namespace std;

char c1,c2;
int k;
char s[1000];
int a[1000];
int b[1000];
long long cnt;
int main()
{
	scanf("%d",&k);
	scanf("%s",&s);
	getchar();
	int n = strlen(s);
	scanf("%c",&c1);
	getchar();
	scanf("%c",&c2);
	int t1=0,t2=0;
//	cout<<c1<<' '<<c2<<endl;
	for(int i=0;i<n;i++){
		if(s[i] == c1){
			a[t1++] = i;
		}
		if(s[i] == c2){
			b[t2++] = i;
		}
	} 
	
	for(int i=0;i<t1;i++){
		int temp=0;
		while(b[temp] - a[i] < k - 1 && temp < t2) temp ++;
		if(b[temp] - a[i] >= k - 1) cnt+=t2-temp;
	}
	cout<<cnt<<endl;
	return 0;
}

结果:

相关推荐
Kalika0-041 分钟前
猴子吃桃-C语言
c语言·开发语言·数据结构·算法
sp_fyf_20241 小时前
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-02
人工智能·神经网络·算法·计算机视觉·语言模型·自然语言处理·数据挖掘
我是哈哈hh3 小时前
专题十_穷举vs暴搜vs深搜vs回溯vs剪枝_二叉树的深度优先搜索_算法专题详细总结
服务器·数据结构·c++·算法·机器学习·深度优先·剪枝
Tisfy3 小时前
LeetCode 2187.完成旅途的最少时间:二分查找
算法·leetcode·二分查找·题解·二分
Mephisto.java3 小时前
【力扣 | SQL题 | 每日四题】力扣2082, 2084, 2072, 2112, 180
sql·算法·leetcode
robin_suli3 小时前
滑动窗口->dd爱框框
算法
丶Darling.3 小时前
LeetCode Hot100 | Day1 | 二叉树:二叉树的直径
数据结构·c++·学习·算法·leetcode·二叉树
labuladuo5203 小时前
Codeforces Round 977 (Div. 2) C2 Adjust The Presentation (Hard Version)(思维,set)
数据结构·c++·算法
jiyisuifeng19914 小时前
代码随想录训练营第54天|单调栈+双指针
数据结构·算法
꧁༺❀氯ྀൢ躅ྀൢ❀༻꧂4 小时前
实验4 循环结构
c语言·算法·基础题