51NOD 1127 最短的包含字串 尺取法

2021-09-19 15:12:40 字數 800 閱讀 8046

1 秒131,072 kb

20 分

3 級題

給出乙個字串,求該字串的乙個子串s,s包含a-z中的全部字母,並且s是所有符合條件的子串中最短的,輸出s的長度。如果給出的字串中並不包括a-z中的全部字母,則輸出no solution。

收起

第1行,1個字串。字串的長度 <= 100000。
輸出包含a-z的最短子串s的長度。如果沒有符合條件的子串,則輸出no solution。
bvcabcdeffghijklmmnopqrstuvwxzyzz
28
怎麼找這個最短序列是關鍵。當包含了26個英文本母的時候,讓左指標轉移,此時需要判斷。

#includeusing namespace std;

#define ll long long

const int maxn=100000+66;

const ll mod=1e9+7;

char s[maxn];

int a[1000];

int main()

if(t==26)

ans=min(ans,i-l+1);

//cout///

[stathread]

static void main()

num[str[i]]++;

while (t==26)

}if(!flag)

else}}

}

51NOD 1127 最短的包含字串

傳送門 給出乙個字串,求該字串的乙個子串s,s包含a z中的全部字母,並且s是所有符合條件的子串中最短的,輸出s的長度。如果給出的字串中並不包括a z中的全部字母,則輸出no solution。input 第1行,1個字串。字串的長度 100000。output 輸出包含a z的最短子串長度。如果沒...

51nod1127 最短的包含字串

給出乙個字串,求該字串的乙個子串s,s包含a z中的全部字母,並且s是所有符合條件的子串中最短的,輸出s的長度。如果給出的字串中並不包括a z中的全部字母,則輸出no solution。收起第1行,1個字串。字串的長度 100000。輸出包含a z的最短子串s的長度。如果沒有符合條件的子串,則輸出n...

51Nod1127 最短的包含字串

給出乙個字串,求該字串的乙個子串s,s包含a z中的全部字母,並且s是所有符合條件的子串中最短的,輸出s的長度。如果給出的字串中並不包括a z中的全部字母,則輸出no solution。二分。include include include include include include includ...