例如
check("abs","abc");// Return true
check("ab","ac");// Return false
check("ab","abc");// Return false
你如何递归地编写这个方法
public static boolean check(String s1, String s2) {
if (s1.equals(s2)) {
return 1;
if (s1.length < s2.length) {
return 0;
if (s1.length > s2.length) {
return 0;
if (s1.length == s2.length) {
for (int i; i< s1.length; i++){
if(s1.charAt[i].equalss2.charAt[i]) {
return 1
??
}
我做了一些修改并试图先自己接近,但我不知道这段代码是编译还是做我想做的事。
答案 0 :(得分:0)
无需使用递归,您可以使用此
来实现此目的public static boolean check(String s1, String s2) {
int count = 0;
if (s1.length() != s2.length()) {
return false;
else {
for (int i=0; i< s1.length(); i++){
if(s1.charAt(i) != s2.charAt(i))
return false;
count = i;
}
if(count == s1.length()-1)
return true;
}
return false;
}
答案 1 :(得分:0)
我认为你想这样做是因为这是一项任务,不是因为这是一个好主意。 :)所以我不打算为你编写代码,但逻辑是这样的:
答案 2 :(得分:0)
你通常不会递归地写这个,但如果你真的坚持,明显的方法是比较字符串的第一个字符,并(递归地)比较其余字符(返回值是逻辑{{1}这两个)。当/如果你到达终点(空字符串)那些也是平等的。
答案 3 :(得分:0)
在数学和计算机科学中,当一类对象或方法可以由两个属性定义时,它们表现出递归行为:
A simple base case (or cases), and
A set of rules which reduce all other cases toward the base case.
因此,您已定义这两个属性并在方法中实现它。
这种基本案例通常定义在某些特殊值上,例如0
或""
。
在您的示例中,您可以定义当两个字符串都为""
时会发生什么。 (基本情况)
其他属性必须导致基本情况,通过此规则表示您必须达到基本情况。在您的情况下,空字符串""
。
此属性可能是某种substring - 操作,这将导致""
(基本情况)。所以这个规则可能是:如果第一个字符和剩余字符串(通过check(remaining string
的递归)相等,则字符串相等。