算法Day29 打印数目

打印数目

Description

小硕有一套字母表arr,其中每个上都刻有一个字母arr[i]。返回小硕可以印出的非空字母序列的数目。
注意:本题中,每个字母只能使用一次。

Input

输入字符串arr
1≤arr.length≤7

Output

输出可打印数目

Sample

在这里插入图片描述

代码

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;


public class Main {
   
    static BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    static int count = 0;

    public static void main(String[] args) throws IOException {
   
        String s = reader.readLine();
        ArrayList<Character> choice = new ArrayList<>();
        for(int i = 0;i<s.length();i++){
   
            choice.add(s.charAt(i));
        }
        Collections.sort(choice);
        backtrack(choice);
        System.out.println(count);
    }
    public static void backtrack(ArrayList<Character> choice){
   
        char flag = 0;
        for(int i = 0;i<choice.size();i++){
   
            Collections.sort(choice);
            char c = choice.get(i);
            if(c != flag){
   
                choice.remove(i);
                count++;
                backtrack(choice);
                choice.add(c);
            }
            flag = c;
        }
    }

}

思路

使用回溯法,与一般对层数迭代不同,这里直接使用数组进入排序,减少了使用全局变量等工作量
每次进行sort排序,是为了将c加入后进入正确的位置,保证恢复现场

相关推荐

  1. 算法训练营Day29

    2023-12-12 06:20:05       38 阅读
  2. 算法训练营Day29(回溯)

    2023-12-12 06:20:05       39 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-12 06:20:05       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-12 06:20:05       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-12 06:20:05       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-12 06:20:05       18 阅读

热门阅读

  1. Jenkins:持续集成与持续交付的自动化利器

    2023-12-12 06:20:05       38 阅读
  2. 运筹学经典问题(一):指派问题

    2023-12-12 06:20:05       35 阅读
  3. 字符串相似度计算:Jaro-Winkler算法实现

    2023-12-12 06:20:05       43 阅读
  4. Docker笔记:Docker中简单配置Mysql/Redis/Mongodb容器

    2023-12-12 06:20:05       38 阅读
  5. uniapp点击图片预览功能?

    2023-12-12 06:20:05       42 阅读
  6. 排序算法——归并排序

    2023-12-12 06:20:05       35 阅读
  7. 在gen_server使用ets实例演示

    2023-12-12 06:20:05       32 阅读
  8. final的安全发布

    2023-12-12 06:20:05       35 阅读
  9. Web 安全之公钥基础设施 PKI 详解

    2023-12-12 06:20:05       32 阅读