下面是一个递归问题的描述,我想了很久不知道怎么表达递归的base case。
我的想法是如果最后字符串的长度跟字符串中不同字母出现的个数相等(比如abc字母出现个数为3,bcaa还是3),那就是base case。但是题目不让用for循环和正则表达式。
请教下该题的base case 是什么
下面是一个递归问题的描述,我想了很久不知道怎么表达递归的base case。
我的想法是如果最后字符串的长度跟字符串中不同字母出现的个数相等(比如abc字母出现个数为3,bcaa还是3),那就是base case。但是题目不让用for循环和正则表达式。
请教下该题的base case 是什么
收起
字符串处理中使用递归,将字符串切割成一个字符+子字符串,然后递归处理子字符串。base case当然是子字符串是一个字符了,就不用执行了。
public static String test3(String string) {
if(string.length()<=1) {
return string;
}
String s = string.substring(0,1);
String end = string.substring(1, string.length());
if(end.startsWith(s)) {
return test3(end);
}else {
return s+test3(end);
}
}
报告相同问题?