蓝桥杯填充(贪心)

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;
 } 
相关推荐
代码对我眨眼睛3 小时前
226. 翻转二叉树 LeetCode 热题 HOT 100
算法·leetcode·职场和发展
黑色的山岗在沉睡4 小时前
LeetCode 494. 目标和
算法·leetcode·职场和发展
莫叫石榴姐10 小时前
SQL百题斩:从入门到精通,一站式解锁数据世界
大数据·数据仓库·sql·面试·职场和发展
你总是一副不开心的样子(´ . .̫ .11 小时前
一、十天速通Java面试(第三天)
java·面试·职场和发展·java面试
小欣加油14 小时前
leetcode 62 不同路径
c++·算法·leetcode·职场和发展
夏鹏今天学习了吗14 小时前
【LeetCode热题100(38/100)】翻转二叉树
算法·leetcode·职场和发展
夏鹏今天学习了吗14 小时前
【LeetCode热题100(36/100)】二叉树的中序遍历
算法·leetcode·职场和发展
微笑尅乐21 小时前
从暴力到滑动窗口全解析——力扣8. 字符串转换整数 (atoi)
算法·leetcode·职场和发展
007php0071 天前
某大厂跳动面试:计算机网络相关问题解析与总结
java·开发语言·学习·计算机网络·mysql·面试·职场和发展
我命由我123452 天前
Photoshop - Photoshop 工具栏(10)透视裁剪工具
经验分享·笔记·学习·ui·职场和发展·职场发展·photoshop