加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 组合需要第5个字符串

发布时间:2020-12-15 01:07:45 所属栏目:Java 来源:网络整理
导读:假设有一个字符串s = abcd 我想要第5个字符串,包括a,b,c,d,这是adbc. 但我也得到了我不需要的所有答案. 那么如何在第5次执行后停止此方法呢? import java.util.Arrays;import java.util.Scanner;class Test{ long times; int n=1; public static void main(

假设有一个字符串s = abcd

我想要第5个字符串,包括a,b,c,d,这是adbc.
但我也得到了我不需要的所有答案.

那么如何在第5次执行后停止此方法呢?

import java.util.Arrays;
import java.util.Scanner;

class Test{
   long times;
   int n=1;

   public static void main(String[] args) {
        Test tm=new Test();
        Scanner in=new Scanner(System.in);
        int t=Integer.parseInt(in.nextLine());

        while(t!=0){
            String s=in.nextLine();
            char ch[]=s.toCharArray();          
            Arrays.sort(ch);
            String sort=String.valueOf(ch);            
            String ans;
            long n=Long.parseLong(in.nextLine());
            tm.times=n;
            tm.permu("",sort);
            t--;           
        }
    }

    private void permu(String prefix,String str) {
        int len=str.length();          

        if(len==0){
            if(n==times){
                System.out.println(prefix);
            }
            else{
                n++;
            }
        }
        else{
            for(int i=0;i

其次是有任何网站,我可以阅读有关排列,组合和概率的计算和发现排列,组合和概率……对于编码的东西不是为了数学的东西..我知道如何数学解决但我不能编码它..无法为它编写逻辑.

最佳答案
运行检查并在递归中打印结果后,不要更改n.这就是你在adbc之后打印所有内容的原因.

如果您在检查时使用此代码:

if (n == times) {
    System.out.println(prefix);
    n = -1;
} else {
    if (n > -1)
        n++;
}

然后你只能得到n ==次为真,那就是前缀是adbc的时候.

解决方案的示例测试:

output

如果要停止一个没有返回值的方法(方法签名中的返回类型为void),则调用return;将退出该方法……但这里不需要它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读