PTA 好字尾 10分 字串匹配 字首函式

2021-10-10 11:45:45 字數 1179 閱讀 2663

我們稱乙個字串的字尾為好字尾,如果它滿足如下條件:

(1)它在字串中至少出現2次;

(2)滿足條件(1)的最長者。

請編寫程式計算乙個字串的好字尾長度,注意乙個字串不能稱為自己的字尾。

輸入為乙個字串,包含不超過10^​5個字母。

輸出為乙個整數,表示輸入字串的好字尾長度。

xacbacba
4
yxxabacaba
3
abc
0
首先看字首函式定義:

根據定義知,next[i] = k;k就是以i為末尾下標的子串中,最長的相同真前字尾的長度,因此本題先將字串逆轉,然後就是求最大next[i]問題

#

include

#include

#include

using

namespace std;

const

int maxn =

1e5+2;

char str[maxn]

;int next_[maxn]

;int ans;

void

get_next

(int next_,

char str)

}int

main()

printf

("%d\n"

, ans)

;system

("pause");

return0;

}

#

include

using

namespace std;

class

solution

return pi;

}public

:int

strstr

(string haystack, string needle)

}return-1

;}};

6 17 字串排序 10分 PTA

從鍵盤上輸入n個字串 約定 每個字串中字元數 80位元組 對其進行公升序排序並輸出。函式介面定義 void sort str char str 裁判測試程式樣例 include include define n 5 void sort str char src int main void for i...

EOJ 1805 字串匹配 字尾陣列

給你 2 個字串 可能包括數字以及標點 長度不超過 50124,請你求出最長的連續的公共子串行。不知道是不是資料改了,導致這個似乎是n 2的演算法也能暴力過去 include using namespace std int main maxl max maxl,len printf d n maxl...

6 8 字串04 比較字串(10 分)

c語言標準函式庫中包括 strcmp 函式,用於字串的比較。作為練習,我們自己編寫乙個功能與之相同的函式。函式原型 比較字串 int strcmp const char str1,const char str2 說明 str1 和 str2 分別為兩個字串的起始位址。按字典排序法,若 str1 串值...