24| 字符串

代码实现

cpp 复制代码
const int N = 30;
string s;
int a[N];
int main()
{
	cin >> s;
	int n = s.size();
	int l = 0, r = 0, kind = 0, ret = n;
	while(r < n)
	{
		// 进窗口
		if (islower(s[r]))
		{
			a[s[r] - 'a'] ++;
			if (a[s[r] - 'a'] == 1) kind++;
		 } 
		 while(kind == 26)
		 {
		 	// 更新结果 
		 	ret = min(ret, r - l + 1);
		 	
		 	// 出窗口
			 if (islower(s[l])) 
			 {
			 	a[s[l] - 'a'] --;
			 	if (a[s[l] - 'a'] == 0) kind--;
			 }
			 l++;
		 }
		 r++;
	}
	cout << ret << endl;
 } 
相关推荐
一隅论数智3 天前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
倒头就睡的小比特3 天前
算法竞赛C++常用的STL
c++·算法
weilx12343 天前
C++笔记-文件IO-<fcntl.h>
c++
小羊没烦恼!3 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
XiHongShi20163 天前
STM32F407 RTC定时器例程,建议保存
stm32·单片机·学习
爱吃苹果的日记本3 天前
离散数学第六课
学习·离散数学
猎头南楼3 天前
知识社区推荐系统实践:新用户冷启动与长短期兴趣建模的挑战 资深推荐算法工程师
人工智能·深度学习·算法·机器学习
Smileyqp沛沛3 天前
前端?C++ ?较大差异基础罗列
c++·基础·前端转c++
m0_547486663 天前
《数据结构教程》全套 PPT课件2026
数据结构