2つの再帰方式で文字を返す
条件:戻り文字が奇数長
1つ目:
2つ目:
1つ目:
import java.util.*;
public class rollback {
static Vector s;
public static void main(String[] args)
{
rollback a =new rollback();
s = new Vector();
String v="123454321";
for(int i=0;i<v.length();i++)
{
s.add(v.charAt(i));
}
System.out.println(a.fun(s,0,8,8));
}
boolean fun(Vector s,int start,int end,int n)
{
if(start==end)
return true;
if(s.get(start)==s.get(end))
return fun(s,start+1,n-start-1,n);
return false;
}
}
2つ目:
import java.util.*;
public class rollback1 {
static Vector s;
public static void main(String[] args)
{
rollback1 a =new rollback1();
char[] number = new char[]{'a','b','c','d','c','b','a'};
System.out.println(String.valueOf(fun(number)));
}
static boolean fun(char[] number)
{
if(number.length%2 == 0)
return false;
if(number.length== 1)
return true;
else
{
if(number[0] != number[number.length - 1])
return false;
else
{
//delete the first element and the last element
char[] numberCopy = new char[number.length - 2];
for(int i = 0; i < number.length -2; i ++)
numberCopy[i] = number[i + 1];
return fun(numberCopy);
}
}
}
}