题目描述:
你会得到一个字符串 text 。你应该把它分成 k 个子字符串 (subtext1, subtext2,…, subtextk) ,要求满足:
subtexti 是 非空 字符串
所有子字符串的连接等于 text ( 即subtext1 + subtext2 + ... + subtextk == text )
对于所有 i 的有效值( 即 1 <= i <= k ) ,subtexti == subtextk - i + 1 均成立
返回k可能最大值。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/longest-chunked-palindrome-decomposition
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题思路:
原题的text的长度比较短最大只有100,那么我们可以直接从末尾找到一个字符和第一个字符相同的位置,然后再将末尾那个串和前面那个串给他截取出来判断是否相等,相等就进入下一层递归。
代码:
class Solution {
public:
int longestDecomposition(string text) {
int len = text.size();
if(len == 0)
return 0;
for(int i = len - 1 ; i > 0 ; i--)
{
if(text[i] == text[0] && text.substr(0,len-i)==text.substr(i))
{
return 2 + longestDecomposition(text.substr(len-i,i*2-len));
}
}
return 1;
}
};