java怎么用递归求字符串所有子串

要求能输入一个数字,决定子串最小长度,求符合该条件的子串,不能是在全部子串求完后再筛选。另外要求顺序不能乱... 要求能输入一个数字,决定子串最小长度,求符合该条件的子串,不能是在全部子串求完后再筛选。
另外要求顺序不能乱
展开
 我来答
若以下回答无法解决问题,邀请你更新回答
WM_THU
2015-02-01 · TA获得超过7163个赞
知道大有可为答主
回答量:4285
采纳率:80%
帮助的人:3868万
展开全部
请举个具体点的例子,比如:
给定字符串“abcdef”,输入一个数字3,应该返回什么?
追问
abc bcd cdef.....就是长度大于3的子串,顺序不能倒,比如cda就不行
追答
两层for循环就可以了。外层循环控制子串长度(即 3 到 6),内层循环控制子串起点。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友31c31c0
2017-12-02
知道答主
回答量:24
采纳率:0%
帮助的人:13.4万
展开全部
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);
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式