问题描述
我正在尝试创建一个方法 shuffle (String stri, String str2, String str3)
,它返回一个布尔值并取两个字符串并“洗牌”它们以生成第三个字符串,但我正在尝试递归地进行,这是对我来说有点难以思考。
如果str1
和str2
可以混洗,我想返回 true ,如果不能混洗,则返回 false 。
例如,如果str1 = "tv"
和str2 = "aol"
,该方法可能返回taovl
。
我还计划测试该方法并创建另一个辅助方法以使其更有效,但这很容易。
1楼
import java.util.Scanner;
public class lab3{
public static void main(String[] args) {
String str;
System.out.print("Enter String: ");
Scanner sc = new Scanner(System.in);
str = sc.nextLine();
String res = revRec3(str);
System.out.println(res);
}
public static String revRec3(String str)
{
if (str.length() <= 1)
return str;
else{
String first = str.substring(0, str.length() / 3);
String second = str.substring(str.length() / 3, ((2 * str.length()) / 3));
String third = str.substring((2 * str.length()) / 3, str.length());
return revRec3(third)+revRec3(second)+revRec3(first);
}
}
}
尝试做这样的事情。 该程序将字符串拆分为 3 部分,然后使用递归将它们反转。
2楼
我通过简单地创建三个整数变量来遍历所有三个字符串的索引并检查任何索引处的字母是否与s3
的相同顺序匹配来解决这个问题