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;
 } 
相关推荐
GreenTea3 小时前
深度解读 Anthropic 多智能体报告:更强的模型 ≠ 更好的协调
前端·后端·算法
码匠许师傅3 小时前
【C++ 面试真题】聊聊 C++ 的移动语义与右值引用
java·c++·面试
bitbrowser4 小时前
giffgaff突然停用?先分清闲置停用和长期境外断开
笔记
九硕智慧建筑一体化厂家4 小时前
数字化管控落地,直流照明构筑安全照明体系
运维·人工智能·笔记·安全·智慧城市
小席是个热心肠4 小时前
AI相关的自我学习
java·人工智能·学习
fqq34 小时前
力扣刷题前置Java语法
算法·leetcode·职场和发展
AI云海4 小时前
天幕红尘笔记
笔记
小小龙学IT5 小时前
DuckDB 深度实战:用 C++ 在进程内跑一个「分析型数据库」
数据库·c++
知无不研6 小时前
lambda表达式的使用(3)
开发语言·c++·lambda
何事误红尘6 小时前
Mqtt学习笔记(一):Mosquitto服务器搭建、MQTTX安装测试
学习