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;
 } 
相关推荐
c++之路1 小时前
CMake 系列教程(二):基础命令详解
开发语言·c++
南境十里·墨染春水5 小时前
C++ 工厂模式:从入门到进阶,彻底掌握对象创建的艺术
开发语言·c++·算法
@insist1235 小时前
系统架构设计师-实时性评价、调度算法与内核架构选型
算法·架构·系统架构·软考·系统架构设计师·软件水平考试
一拳一个呆瓜8 小时前
【STL】_SCL_SECURE_NO_WARNINGS
c++·stl
小小编程路8 小时前
C++ 异常 完整讲解
开发语言·c++
千寻girling10 小时前
记录第一次学习 Docker
学习·docker·容器
一只齐刘海的猫11 小时前
【Leetcode】找到字符串中所有字母异位词
算法·leetcode·职场和发展
海清河晏11111 小时前
数据结构 | 八大排序
数据结构·算法·排序算法
Kobebryant-Manba11 小时前
学习RNN(简洁实现)
人工智能·rnn·学习