完美字串

2021-10-22 06:21:04 字數 1264 閱讀 9712

題幹

如果乙個字串中包含了所有 26 個小寫字母,則我們認為它是完美字串。現在給定乙個字串 s,你需要找出它的所有子串中,最短的完美字串的長度。

輸入

輸入一行僅包含小寫字母的字串 s(1 <= |s| <= 1e5)。

輸出

輸出乙個整數,代表s滿足完美字串的最短子串的長度。

如果s的子串中沒有完美字串,則輸出-1。

輸入樣例

abccdefghijklmnopqrstuvwxyz

輸出樣例

27知識點:雙指標、字串

思路

首先判斷該字串是否存在完美字串;

第乙個思路是兩個指標從前到後一次選出每個完美字串的長度,輸出最小完美字串的長度;

第二個思路是兩個指標分別從前面和後面一次縮短字串長度,最後得到最短的完美字串。

上**

#include

#include

#include

#include

using

namespace std;

const

int n =

130;

int ch[n]

;string s;

bool

check

(int l,

int r)

for(

int i =

97; i <=

122; i ++

)for

(int i =

97; i <=

122; i ++

) ch[i]=0

;if(flag ==0)

return

false

;else

return

true;}

intmain()

if(len <=

200)

if(r == len -1)

break;}

}else}}

if(ans ==

100100

) cout <<-1

;else cout << ans;

return0;

}

完美字串

約翰認為字串的完美度等於它裡面所有字母的完美度之和。每個字母的完美度可以由你來分配,不同字母的完美度不同,分別對應乙個1 26之間的整數。約翰不在乎字母大小寫。也就是說字母f和f 的完美度相同。給定乙個字串,輸出它的最大可能的完美度。例如 dad,你可以將26分配給d,25分配給a,這樣整個字串完美...

完美字串

約翰認為字串的完美度等於它裡面所有字母的完美度之和。每個字母的完美度可以由你來分配,不同字母的完美度不同,分別對應乙個1 26之間的整數。約翰不在乎字母大小寫 也就是說字母a和a的完美度相同 給定乙個字串,輸出它的最大可能的完美度。例如 dad,你可以將26分配給d,25分配給a,這樣整個字串完美度...

完美字串

完美字串 約翰認為字串的完美度等於它裡面所有字母的完美度之和。每個字母的完美度可以由你來分配,不同字母的完美度不同,分別對應乙個1 26之間的整數。約翰不在乎字母大小寫 也就是說字母a和a的完美度相同 給定乙個字串,輸出它的最大可能的完美度。例如 dad,你可以將26分配給d,25分配給a,這樣整個...