拼湊題意描述:s="puleyaknoi",給定t個很長很長的小寫字母字串(<=1e5),問最短的子串行中能找到s的序列的長度。
分析:暴力肯定不行,因為s中每個字元都不相同,若第i個字元為』u』,那麼我們下一步只用找』l』就好了。那麼怎麼記錄下乙個字母出現的位置呢?
我們可以倒著推,每次找乙個字母的下一位的位置,那麼倒著推是就需要記錄下下一位的位置,等於到這一位時直接將pos賦給他,如果沒有下一位就為0.s長度為10,所以我們需要找9次。
處理之後就直接暴力1~n。
**:
#include #define mst(a,x) memset(a,x,sizeof(a))
#define ll long long
using namespace std;
templatevoid read(t &x)while(isdigit(c))x=res*f;}
const ll maxn = 1e5 + 10;
const ll mod = 1e9 + 7;
ll dp[maxn];
char s="puleyaknoi",str[maxn];
int main()
}ll mi=1e9;
for(ll i=1;i<=n;i++)
x++;
p=dp[p];
}if(ok) mi=min(mi,p-i+1);
}if(mi==1e9) mi=-1;
cout<}
return 0;
}
對字串的拼湊,神奇似vue的寫法
與vue相似之處 給html邦值都是用大括號 括號裡面寫變數 原理 用正則表達匹配 中的是否存在表示式中預先宣告的變數,如果有則返回變數結果,沒有則不處理 對字串的拼湊 param args description return description string.prototype.format...
ORACLE in 字串,字串,字串
因為傳進來的引數是 字串,字串,字串,要實現in 字串,字串,字串 select from htl price p where p.hotel id 30073328 and p.able sale date between to date 2009 03 27 yyyy mm dd and to ...
字串,字串陣列,字串指標!!
字串 字元陣列實際上是一系列字元的集合,也就是 字串 string 字串陣列 在c語言中,沒有專門的字串變數,沒有string型別,通常就用乙個字元陣列來存放乙個字串。c語言規定,可以將字串直接賦值給字元陣列 在c語言中,字串總是以 0 作為串的結束符。上面的兩個字串,編譯器已經在末尾自動新增了 0...