これが3つの文字列が与えられた問題です。
a=partyrock
b=anthem
c=partyrockanthem
タスクは、文字列aとbを組み合わせて文字列cを作成できるかどうかを確認することです。規則では、文字列内の文字の場合は順序を変更できませんが、ある文字列から別の文字列にジャンプすることはできます。したがってc = pantartyrohemck
、この場合、ある文字列から別の文字列に移動して最終的な文字列を作成するとします。
これが再帰のコードです。問題は、値を返す方法が見つからないことです。これを行う簡単な方法がある場合は、事前に感謝をお知らせください。
public class Hw4c {
public static boolean everyDayImShuffling(String a, String b, String c)
{
boolean result = shufflinga(a,b,c,0,0,0);
return result;
}
public static boolean shufflinga (String a, String b, String c, int d, int e, int f)
{
if(a.substring(d,d+1).equals(c.substring(f,f+1)))
{
if(d!=a.length()-1)
{
d=d+1;
f=f+1;
shufflinga(a,b,c,d,e,f);
}
else
{
if(e!=b.length()-1)
shufflingb(a,b,c,d,e,f);
}
}
else
{
shufflingb(a,b,c,d,e,f);
}
return true;
}
public static boolean shufflingb (String a, String b, String c, int d, int e, int f)
{
if(b.substring(e,e+1).equals(c.substring(f,f+1)))
{
if(e!=b.length()-1)
{
e=e+1;
f=f+1;
shufflingb(a,b,c,d,e,f);
}
else
{
if(d!=a.length()-1)
{
shufflinga(a,b,c,d,e,f);
}
}
}
return true;
}
}