蓝桥杯填充(贪心)

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社区3 分钟前
LeetCode 383 赎金信
算法·leetcode·职场和发展
007php0072 小时前
PHP与Java项目在服务器上的对接准备与过程
java·服务器·开发语言·分布式·面试·职场和发展·php
夏鹏今天学习了吗5 小时前
【LeetCode热题100(95/100)】寻找重复数
算法·leetcode·职场和发展
敲敲了个代码9 小时前
如何优化批量图片上传?队列机制+分片处理+断点续传三连击!(附源码)
前端·javascript·学习·职场和发展·node.js
Anastasiozzzz10 小时前
leetcode力扣hot100困难题--4.俩个正序数列的中位数
java·算法·leetcode·面试·职场和发展
a程序小傲14 小时前
国家电网面试被问:FactoryBean与BeanFactory的区别和动态代理生成
java·linux·服务器·spring boot·spring·面试·职场和发展
a程序小傲16 小时前
高并发下如何防止重复下单?
java·开发语言·算法·面试·职场和发展·状态模式
沉默-_-18 小时前
力扣hot100双指针专题解析2(C++)
java·c++·算法·蓝桥杯·双指针
程序员杰哥18 小时前
Pytest自动化测试框架实战
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·pytest
小袁顶风作案19 小时前
leetcode力扣——452. 用最少数量的箭引爆气球
学习·算法·leetcode·职场和发展