51Nod 1127 最短的包含字串

2022-09-15 15:54:18 字數 724 閱讀 7624

51nod - 1127 最短的包含字串

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

input

第1行,1個字串。字串的長度 <= 100000。
output

輸出包含a-z的最短子串長度。如果沒有符合條件的子串,則輸出no solution。
input示例

bvcabcdeffghijklmmnopqrstuvwxzyzz
output示例

28

題解: 

雙指標 + 計數陣列,可以在 o(n ) 時間內解決。 

#include #include #include #include using namespace std;

const int maxn = 100000 + 5;

int vis[26];

char ch[maxn];

int main()

vis[ch[j] - 'a'] += 1;

j++;

if(cnt == 26)

if( ans > (j - i) ) }}

if(ans == len + 1)else

} return 0;

}

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...