你会得到一个字符串 text 。你应该把它分成 k 个子字符串 (subtext1, subtext2,…, subtextk) ,要求满足:
subtexti 是 非空 字符串
所有子字符串的连接等于 text ( 即subtext1 + subtext2 + ... + subtextk == text )
对于所有 i 的有效值( 即 1 <= i <= k ) ,subtexti == subtextk - i + 1 均成立
返回k可能最大值。
来源:力扣(LeetCode)
class Solution {
public int longestDecomposition(String text)
{
int n=text.length();
int i=0;
int j=n-1;
int ans=0;
String s1,s2;
s1="";
s2="";
while(true)
{
if(i>=j)
break;
s1+=text.charAt(i);
s2=text.charAt(j)+s2;
if(s1.equals(s2))
{
ans++;
s1="";s2="";
if(i+1==j)
return 2*ans;
}
i++;j--;
}
return ans*2+1;
}
}
较为简单的贪心算法。
注意:String类型比较内容,应该用equals方法最为妥当,
str的扩展顺序要特别注意。