蓝桥杯填充(贪心)

1<=n<=1e6

思路:因为题目要求字串不重叠,所以当我们遍历到某一个字符时可以将它先与前面的比较,如果前面的字符没有配对且与它相等,那么匹配,否则就继续向下遍历,如果遍历到?,其实就是少了判断相等的步骤。

每次只看前面的,因为是连续且不重叠子串,所以如果前面的字符与 该字符不匹配,那么它一定不能与后面的字符匹配。而且这样匹配也不会影响后面字符的匹配。

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main()
{
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	string s;
	cin>>s;
	int n=s.size(),ans=0;
	vector<int> v(n);
    for(int i=0;i<n;i++)
	{
		if(i==0) continue;
		if(i>0)
		{
			if(!v[i-1])
			{
				if(s[i]==s[i-1]||s[i]=='?'||s[i-1]=='?') 
				    {
				    	v[i]=1;
				    	v[i-1]=1;
				    	ans++;
					} 
			}
		}
	}
	cout<<ans<<endl;
	return 0;
 } 
相关推荐
Swift社区1 小时前
涂色不踩雷:如何优雅解决 LeetCode 栅栏涂色问题
算法·leetcode·职场和发展
洛书千年3 小时前
五月份嵌入式面试总结
面试·职场和发展
蓝婷儿6 小时前
前端面试每日三题 - Day 34
前端·面试·职场和发展
S01d13r10 小时前
LeetCode 解题思路 48(编辑距离、只出现一次的数字)
算法·leetcode·职场和发展
XiaoyaoCarter14 小时前
每日一道leetcode(新学数据结构版)
数据结构·c++·算法·leetcode·职场和发展·哈希算法·前缀树
测试界萧萧15 小时前
15:00开始面试,15:06就出来了,问的问题有点变态。。。
自动化测试·软件测试·功能测试·程序人生·面试·职场和发展
咚咚轩16 小时前
蓝桥杯12届国B 纯质数
蓝桥杯
是麟渊16 小时前
【大模型面试每日一题】Day 17:解释MoE(Mixture of Experts)架构如何实现模型稀疏性,并分析其训练难点
人工智能·自然语言处理·面试·职场和发展·架构
Swift社区17 小时前
LeetCode 高频题实战:如何优雅地序列化和反序列化字符串数组?
算法·leetcode·职场和发展
qystca1 天前
P8803 [蓝桥杯 2022 国 B] 费用报销
蓝桥杯