2.3.1 LONGEST PREFIX 最長前綴

2018-06-19 14:01 更新

題目大意:(如題)


輸入輸出:(如題)


解題思路:


1.簡單動態(tài)規(guī)劃。


2.糾結的邊界處理,不建議采用dp[i]表示s前i個字符能否取得這種方法。用這種方法實現(xiàn)字符串儲存的時候會比較麻煩。而且如果存儲不對邊界處理會非常麻煩……(最先我采用的是這種方法,結果WA 4次,多次處理還是有長度為0和長度為1的情況無法分辨,最終放棄)


核心代碼:

lens=s.length();
for(i=0;i<lens;i++)
{
    for(j=0;j<cntp;j++)
    {
        flag=false;
        len=p[j].length();
        if(i+len>lens)//如果加入這個字符串超過了s的長度則不滿足條件
            continue;
        for(k=0;k<len;k++)
            if(s[i+k]!=p[j][k])//有一個字符不同不滿足條件
            {
                flag=true;
                break;
            }
        if(flag==false&&len+i>maxn)//滿足條件更新最大值
            maxn=len+i;
    }
    if(i+1>maxn)//結束條件
        break;
}


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號