VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
123
返回列表 发新帖
楼主: 别叫我女生

面试题,没有做出来

[复制链接]

0

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-3-14 21:30:01 | 显示全部楼层
学习
回复

使用道具 举报

1

主题

9

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
 楼主| 发表于 2020-3-19 16:30:01 | 显示全部楼层
kevinak123 谢谢你呀
但是你能否把
ret+=s[i];
getOne(ret, pos+1);
ret=ret.substring(0, pos-1);
控制逻辑在这,如果你想对某些位进行特殊的处理,在这里进行
你可以画出每次函数的调用诡计,知道它内部的原理,就可以任意修改了。

   再说清楚点,谢谢;了
回复

使用道具 举报

0

主题

63

帖子

42.00

积分

新手上路

Rank: 1

积分
42.00
发表于 2020-3-20 18:30:02 | 显示全部楼层
楼主,描述一下需求!

还有,楼上借花的代码原来是我写的,但是没有看懂
if (prefix.length() == 3)
{
System.out.println(prefix);
}
这段代码的目的

这个程序的原来是回答lz的另一个帖子的:
http://community.csdn.net/Expert/TopicView.asp?id=5265197

那个是排列的问题。这里lz又是要什么呢?
回复

使用道具 举报

1

主题

9

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
 楼主| 发表于 2020-4-11 13:45:02 | 显示全部楼层
指定一个全排列的位数,只列这位数 比如 1 2 3 只列2位 就有11 12 13 21 22 23 31 32 33
回复

使用道具 举报

0

主题

63

帖子

42.00

积分

新手上路

Rank: 1

积分
42.00
发表于 2020-4-12 14:30:01 | 显示全部楼层
不就是我写的那个阿,listAll方法加一个参数,当传进来的prefix长度,就打印并结束递归

  public static void main(String[] args) throws Exception {
    String[] array = new String[] {
        "1", "2", "3", "4"
    };
    listAll(Arrays.asList(array), "", 3);
  }

  public static void listAll(List candidate, String prefix, int length) {
//    if (candidate == null || candidate.isEmpty()) {
    if (prefix.length() == length) {
      System.out.println(prefix);
    }

    for (int i = 0; i < candidate.size(); i++) {
      List temp = new LinkedList(candidate);
      listAll(temp, prefix + temp.remove(i), length);
    }
  }
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表