我們稱乙個字串的字尾為好字尾,如果它滿足如下條件:
(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 串值...