java怎么用递归求字符串所有子串
要求能输入一个数字,决定子串最小长度,求符合该条件的子串,不能是在全部子串求完后再筛选。另外要求顺序不能乱...
要求能输入一个数字,决定子串最小长度,求符合该条件的子串,不能是在全部子串求完后再筛选。
另外要求顺序不能乱 展开
另外要求顺序不能乱 展开
若以下回答无法解决问题,邀请你更新回答
2个回答
展开全部
请举个具体点的例子,比如:
给定字符串“abcdef”,输入一个数字3,应该返回什么?
给定字符串“abcdef”,输入一个数字3,应该返回什么?
追问
abc bcd cdef.....就是长度大于3的子串,顺序不能倒,比如cda就不行
追答
两层for循环就可以了。外层循环控制子串长度(即 3 到 6),内层循环控制子串起点。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
package geekforgeeks;
public class SubString {
public static void main(String[] args) {
String str = "acbxefbzdgkim";
SubString ss = new SubString();
ss.getSubString(str, "", 0, 4);
}
/**
*
* @param srcStr - source String
* @param curStr - current String that forms the substring
* @param indx - current index which scan starts from
* @param maxLen - max input length
*/
private void getSubString(String srcStr, String curStr, int indx, int maxLen) {
// System.out.println(curStr);
if (curStr.length() > maxLen)
return;
if (curStr.length() == maxLen)
System.out.println(curStr);
for (int i = indx; i < srcStr.length(); i++) {
// Choose the next one bigger
if (curStr.isEmpty()
|| curStr.charAt(curStr.length() - 1) < srcStr.charAt(i))
getSubString(srcStr, curStr + srcStr.charAt(i), i, maxLen);
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询