對給定的字串,本題要求你輸出最長對稱子串的長度。例如,給定is pat&tap symmetric?
,最長對稱子串為s pat&tap s
,於是你應該輸出11。
輸入在一行中給出長度不超過1000的非空字串。
在一行中輸出最長對稱子串的長度。
is pat&tap symmetric?
11
開始想複雜了,還想用dp做,其實1000的範圍暴力就行了。枚舉子字串的端點 i,j
i, j
i,j ,並判斷該子串是否是回文,最後取 max
(j−i
)max(j - i)
max(j−
i)即可。
#include
#define inf 0x3f3f3f3f
#define pi acos(-1)
using
namespace std;
typedef pair<
int,
int> p;
typedef
long
long ll;
const
int n =
1e3+19;
const ll mod =
1e9+7;
char str[n]
;int dp[n]
[n];
int n;
boolok(
int x,
int y)
}return1;
}int
main()
str[n]=0
;int ans =1;
for(
int i =
0; i < n; i++)}
} cout << ans << endl;
return0;
}
L2 008 最長對稱子串 (25 分)
對給定的字串,本題要求你輸出最長對稱子串的長度。例如,給定is pat tap symmetric?最長對稱子串為s pat tap s,於是你應該輸出11。輸入格式 輸入在一行中給出長度不超過1000的非空字串。輸出格式 在一行中輸出最長對稱子串的長度。輸入樣例 is pat tap symmet...
L2 008 最長對稱子串 25 分
題目鏈結 對給定的字串,本題要求你輸出最長對稱子串的長度。例如,給定is pat tap symmetric?最長對稱子串為s pat tap s,於是你應該輸出11。輸入格式 輸入在一行中給出長度不超過1000的非空字串。輸出格式 在一行中輸出最長對稱子串的長度。輸入樣例 is pat tap s...
天梯賽L2 008 最長對稱子串 25 分
本來是打算用string做的,但不知道為什麼一直做不對 for size t i buf.length i 0 i for size t j 0 j i buf.length j if i 2 else 這一條的思路是利用str可以直接匹配的優勢,結合reverse可以判斷回文 進一步,i代表最大回...