題目鏈結
分析:
用尺取法來做這道題,有點類似雙指標演算法,兩個指標i,j之間維護的區間內恰好滿足每個最短的26字母,每次有新字元讀入時,若該字元未出現過,則標記數res++,若res==26,則記錄下區間長度,比較選取最短的區間長度,時間複雜度為o(n
)。o(n)。
o(n)
。**如下:
#include
#include
#include
#include
#include
using
namespace std;
string str;
int q[
200]
;int
main()
if(ant==
26) res=
min(res,i-j+1)
;}printf
("%d\n"
,res)
;return0;
}
平衡字串 尺取法
乙個長度為 n 的字串 s,其中僅包含 q w e r 四種字元。如果四種字元在字串 現次數均為 n 4,則其為乙個平衡字串。現可以將 s 中連續的一段子串替換成相同長度的只包含那四個字元的任意字串,使其變為乙個平衡字串,問替換子串的最小長度?如果 s 已經平衡則輸出0。input 一行字元表示給定...
平衡字串(替換字串,尺取法)
乙個長度為 n 的字串 s,其中僅包含 q w e r 四種字元。如果四種字元在字串 現次數均為 n 4,則其為乙個平衡字串。現可以將 s 中連續的一段子串替換成相同長度的只包含那四個字元的任意字串,使其變為乙個平衡字串,問替換子串的最小長度?如果 s 已經平衡則輸出0。一行字元表示給定的字串s 乙...
牛客(27)字串的排列
題目描述 輸入乙個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則列印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca,cab和cba。輸入描述 輸入乙個字串,長度不超過9 可能有字元重複 字元只包括大小寫字母。public static arraylistp...