51nod_1127 最短的包含字串
題目
給出乙個字串,求該字串的乙個子串s,s包含a-z中的全部字母,並且s是所有符合條件的子串中最短的,輸出s的長度。如果給出的字串中並不包括a-z中的全部字母,則輸出no solution。
輸入
第1行,1個字串。字串的長度 <= 100000。
輸出
輸出包含a-z的最短子串s的長度。如果沒有符合條件的子串,則輸出no solution。
樣例輸入
bvcabcdeffghijklmmnopqrstuvwxzyzz
樣例輸出
28
分析
尺取法,定起點,不斷加大終點,直至條件滿足,條件滿足後,將起點的值加大一,然後繼續重複。具體看程式
c++程式
#include#includeusing namespace std;
const int inf=100000;
int a[26];
bool ok()
int main()
if(ans==inf)
cout<<"no solution"
cout
}
演算法 尺取法
我們先來介紹一下尺取法。尺取法,顧名思義,像尺子一樣,一塊一塊的擷取。題目翻譯 給定長度為n的數列整數a0,a1,a2,a3 an 1以及整數s。求出綜合不小於s的連續子串行的長度的最小值。如果解不存在,則輸出0。限制條件 100s 10 8 這裡我們拿第一組測試資料舉例子,即 n 10,s 15,...
雙指標演算法(尺取法)
指向兩個序列 指向乙個序列 維護一段區間,就像快排一樣 一般的樣子 for i 0,j 0 i n i 最核心的性質 能優化到 o n 可能是2n,3n等等 運用了某些單調的性質 模板就是為了節省思考的時間 輸出字串 for int i 0 i strlen str i 樸素做法 for int i...
資料結構與演算法 演算法 演算法和資料結構
資料結構與演算法 演算法 好吧,在這裡,您被優秀或優秀的軟體開發人員所隔開。在這種情況下,我會告訴您一開始或至少在我的情況下,並且我知道大多數時候,對於我認識的大多數人,您會覺得自己是乙個無能的人或白痴。基本上,我怎麼可能不理解這一點,然後您會感到沮喪。在這種情況下,我會告訴您情況並不像您想的那麼糟...