Java 使用递归获取回文的有效方法
我试图使用递归获取回文,但我发现这非常昂贵,因为当我使用Java 使用递归获取回文的有效方法,java,recursion,Java,Recursion,我试图使用递归获取回文,但我发现这非常昂贵,因为当我使用substring()方法时需要创建新字符串,就像在我的代码中一样: public static boolean isPalindrome(String s) { if (s.length() <= 1) return true; else if (s.charAt(0) != s.charAt(s.length() - 1)) return false; else retur
substring()
方法时需要创建新字符串,就像在我的代码中一样:
public static boolean isPalindrome(String s) {
if (s.length() <= 1)
return true;
else if (s.charAt(0) != s.charAt(s.length() - 1))
return false;
else return isPalindrome(s.substring(1, s.length() - 1));
}
public静态布尔值isAlindrome(字符串s){
如果(s.length()您可以传递完整的原始字符串及其索引,那么除了不创建这么多对象之外,它基本上是一样的
public static boolean isPalindrome(String s, int start, int end) {
if ((end-start) <= 1)
return true;
else if (s.charAt(start) != s.charAt(end))
return false;
else return isPalindrome(s, start+1, end-1);
}
public static boolean isPalindrome(String s) {
return isPalindrome(s, 0, s.length()-1);
}
public静态布尔值isAlindrome(字符串s,int start,int end){
如果((结束-开始)