題幹:
如果乙個字串中包含了所有 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,這樣整個...