gpt4 book ai didi

java - 如何检查两个字符串是否递归地生成第三个字符串

转载 作者:行者123 更新时间:2023-11-29 03:36:49 26 4
gpt4 key购买 nike

这是给定三个字符串的问题。

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;
}
}

最佳答案

我会尝试抽象地设计一个解决方案

checkWords(String a, String b, String combined){

int _a = 0, _b = 0;

for (int i = 0; i < combined.length(); i++){
char c = combined.charAt(i);
if (c == a.charAt(_a))
_a++;
else if (c == b.charAt(_b))
_b++;
else return false;
}

return true;
}

请注意,这不包括检查 null 或空输入字符串
只要当前 a 和 b 字符相等,它也不做决定

关于java - 如何检查两个字符串是否递归地生成第三个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15057890/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com