51nod 1127 最短的包含字符串(尺取法)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了51nod 1127 最短的包含字符串(尺取法)相关的知识,希望对你有一定的参考价值。
题目:
简单尺取法
代码:
#include <iostream> #include <algorithm> #include <map> #include <vector> #include <set> #include <math.h> #include <queue> #include <assert.h> #include <stdio.h> #include <stdlib.h> #include <string> using namespace std; typedef long long ll; #define INF 2147483647 string s; map <char,int> m; int main() { cin >> s; int len = s.length(); int l = 0,r = 0;int num = 0; int ans = 2000000000; while(true){ while(num < 26 && r < len){ if(m[s[r]] == 0) num++; m[s[r]]++; r++; } if(num < 26) break; while(num == 26 && l < r){ if(m[s[l]] == 1) num--; m[s[l]]--; l++; } ans = min(ans,r-l+1); } if(ans == 2000000000) cout << "No Solution" << endl; else cout << ans << endl; return 0; }
以上是关于51nod 1127 最短的包含字符串(尺取法)的主要内容,如果未能解决你的问题,请参考以下文章