給出乙個字串,求該字串的乙個子串s,s包含a-z中的全部字母,並且s是所有符合條件的子串中最短的,輸出s的長度。如果給出的字串中並不包括a-z中的全部字母,則輸出no solution。
input:第1行1個字串。字串的長度 <= 100000。
output:
輸出包含a-z的最短子串長度。如果沒有符合條件的子串,則輸出no solution。
示例:思想:基本尺取法(滑動視窗),input1:
bvcabcdeffghijklmmnopqrstuvwxzyzz
output1:
input2:
qqwertyuiopasdfghjklzxcvbnm
output2:
整個過程分為4步:
1.初始化左右端
2. 右端不斷向前滑動,直至滿足條件
3.如果第二步無法滿足條件,則終止,否則更新結果
4.左端擴大1,繼續第二步
適用:在乙個序列中,求滿足條件連續子串行的最值(最小區間,或最大區間)
**如下:
#include using namespace std;
int main()
else
}if(cnt==26) // 滿足a~z 左端滑動
}if(ans == 1e6)
cout<<"no solution"
cout
}
51NOD 1127 最短的包含字串 尺取法
1127 最短的包含字串 基準時間限制 1 秒 空間限制 131072 kb 分值 20 難度 3級演算法題 收藏關注 給出乙個字串,求該字串的乙個子串s,s包含a z中的全部字母,並且s是所有符合條件的子串中最短的,輸出s的長度。如果給出的字串中並不包括a z中的全部字母,則輸出no soluti...
51NOD 1127 最短的包含字串 尺取法
1 秒131,072 kb 20 分 3 級題 給出乙個字串,求該字串的乙個子串s,s包含a z中的全部字母,並且s是所有符合條件的子串中最短的,輸出s的長度。如果給出的字串中並不包括a z中的全部字母,則輸出no solution。收起第1行,1個字串。字串的長度 100000。輸出包含a z的最...
51nod 1127 最短的包含字串(尺取法)
給出乙個字串,求該字串的乙個子串s,s包含a z中的全部字母,並且s是所有符合條件的子串中最短的,輸出s的長度。如果給出的字串中並不包括a z中的全部字母,則輸出no solution。輸入 第1行,1個字串。字串的長度 100000。輸出 輸出包含a z的最短子串s的長度。如果沒有符合條件的子串,...