算法Day29 打印数目

news2024/9/20 9:09:44

打印数目

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加入后进入正确的位置,保证恢复现场

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1304557.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

js中分号产生的问题详解,第一次出现分号导致的问题的记录

图示: 现在 这段代码本来是两行,但是格式化后注意下面一行缩进了,代表按一行解析了, 结果: 加上分号后再格式化就自动对齐了,代表按两行解析. 要是按照没有分号进行解析是怎样的? GPT回答: 这段代码是一行 JavaScript 代码&#xff0c;涉及到了 JSON 对象、条件语句和跳转页面…

小程序域名SSL证书能用免费的吗?

众所周知&#xff0c;目前小程序要求域名强制使用https协议&#xff0c;否则无法上线。但是对于大多数开发者来说&#xff0c;为每一个小程序都使用上付费的SSL证书&#xff0c;也是一笔不小的支出。那么小程序能使用免费的SSL证书吗&#xff1f; 答案是肯定的。目前市面上可选…

跨境独立站优势包括哪些?是否值得做呢?

跨境独立站的优势主要包括&#xff1a; 自主品牌建设&#xff1a;独立站可以更好地展示自主品牌形象&#xff0c;提高品牌知名度和美誉度。 独立域名&#xff1a;独立站可以拥有自己的域名&#xff0c;更加稳定和可信。 自主运营&#xff1a;独立站可以自主运营&#xff0c;包…

COMP9024 C programming language

UNSW (University of New South Wales) C语言可 WeChat: nicefyt

书-顺序查找某个数字p153

#include<stdio.h> int main(){int a[10]{12,13,14,15,16,17,18,19,20,1};int i ;for( i0;i<9;i)if (a[i]15)break; //这里a【i】1要加括号&#xff0c;不要加分号if(i>9)printf("没找到你所需要的数字\n");elseprintf("找到了目标数字&#xff0…

MATLAB六轴机械臂机器人的动力学分析

1、概述 动力学以牛顿第二定律为核心&#xff0c;这个定律指出了力、加速度、质量三者间的关系。 质点动力学有两类基本问题&#xff1a; 一是已知作用于质点上的力&#xff0c;求质点的运动&#xff0c;这个就是正动力学。 二是已知质点的运动&#xff0c;求作用于质点上的力…

ROB端口需求

对于一个 4-way 的超标量处理器来说&#xff0c;在重排序缓存&#xff08;ROB&#xff09;中每周期可以退休的指令个数应该是不小于四条的&#xff1b;如图给出的ROB,在那些最旧的指令中,有三条指令都已经变为了complete状态,那么在一个周期内就可以将这三条指令都退休。 要实现…

2023年【烟花爆竹储存】考试及烟花爆竹储存证考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 烟花爆竹储存考试参考答案及烟花爆竹储存考试试题解析是安全生产模拟考试一点通题库老师及烟花爆竹储存操作证已考过的学员汇总&#xff0c;相对有效帮助烟花爆竹储存证考试学员顺利通过考试。 1、【单选题】B级成品(…

Android---Kotlin 学习001

Kotlin 的诞生 2011年&#xff0c;JetBrains 宣布开发 Kotlin 编程语言&#xff0c;这门新语言可以用来编写在 Java 虚拟机上运行的代码&#xff0c;是 Java 和 Scale 语言之外的又一选择。2017年&#xff0c;Google 在赢得与 Oracle 的诉讼一年后&#xff0c;Google 宣布 Ko…

手动搭建koa+ts项目框架(基础篇)

文章目录 前言一、TS配置文件1、全局安装TypeScript2、项目根目录创建Typescript配置文件 二、项目初始化配置文件&#xff08;package.json&#xff09;1、初始化配置文件2、安装依赖 三、开启简单的服务API入口文件新增脚本 总结如有启发&#xff0c;可点赞收藏哟~ 前言 为什…

【玩转TableAgent数据智能分析】利用TableAgent进行教育数据分析

文章目录 前言九章云极&#xff08;DataCanvas&#xff09;介绍前期准备样例数据集体验1. 样例数据集-Airbnb民宿价格&评价 体验1.1 体验一1.2 体验二 教育数据的分析&#xff08;TableAgent&ChatGLM对比&#xff09;1. 上传文件2. 数据分析与对比2.1 分析一2.1.1 Tabl…

【腾讯云AI绘画】与AI绘画和解,和AI绘画共成长

前言 六月份的时候&#xff0c;买了腾讯AI绘画的资源包。可当通过API去使用AI绘画后&#xff0c;我顿时就被整破防了&#xff0c;于是写了一篇文章&#xff0c;算是无声控诉。被腾讯云AI绘画整破防了&#xff01; 再回首&#xff0c;腾讯绘画不仅提供了API调用&#xff0c;还构…

伪原创API,一文快速了解伪原创API

伪原创API&#xff0c;听起来可能对许多人来说是一个陌生的术语。然而&#xff0c;在当今数字化时代&#xff0c;尤其是在内容创作和网络营销领域&#xff0c;伪原创API正逐渐崭露头角。在本文中&#xff0c;我将向您深入介绍伪原创API是什么&#xff0c;以及它如何在实际应用中…

中国大模型名录汇编(2023)

随着ChatGPT应用的现象级火爆&#xff0c;AI大模型正在迅速发展&#xff0c;引发了新一轮人工智能发展浪潮。大模型基座化趋势或将对人工智能产业链和全球市场竞争格局产生深刻影响。在技术方面&#xff0c;大模型在交互、理解和生成等方面表现出了显著的性能提升。在产业发展方…

Linux:符号和符号表

文章目录 什么是符号&#xff1f;什么是符号表&#xff1f;全局符号和本地符号1. 全局符号&#xff1a;symtab符号表 2. 本地符号&#xff1a; 符号在汇编阶段符号在链接阶段1.由模块 m 定义并能被其他模块引用的全局符号。2.由其他模块定义并被模块 m 引用的全局符号。3.只被模…

AI跨界学习,不再是梦!

大家好&#xff01;今天给大家推荐的 GPTs 是【行业知识脉络】&#xff0c;帮助大家快速了解某个领域的脉络&#xff0c;并提供足够的学习资料和建议。 在AI时代&#xff0c;从小白到专家的1万小时定律即将失效&#xff0c;用少于1千小时掌握行业知识树和其核心概念是如何学习的…

Python Selenium3 自动化测试实战:构建高效测试项目

&#x1f482; 个人网站:【 海拥】【神级代码资源网站】【办公神器】&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交流的小伙伴&#xff0c;请点击【全栈技术交流群】 在当今软件开发领域&#xff0c;自动化测试成为…

310v转5v 1A 4G模块供电稳压芯片-AH8665

AH8665是一个高性能的稳压芯片&#xff0c;适用于将310V输入电压转换为5V 1A的输出电压&#xff0c;为4G模块提供稳定的电源供应。该芯片具有出色的稳定性能、高效转换效率和紧凑的外形尺寸&#xff0c;广泛应用于通信、物联网等领域。 AH8665芯片采用先进的低压差线性稳压器&…

【新手解答9】深入探索 C 语言:递归与循环的应用2

C语言的相关问题解答 写在最前面问题交流递归和循环if-else 和循环的结合 递归中的 if-else例子 递归是否形成循环&#xff1f;可以理解为特殊形式的循环递归示例&#xff1a;计算阶乘递归与循环的区别 结论 写在最前面 一位粉丝私信交流&#xff0c;回想起了当初的我C语言一题…

2012-12-12 下载ndk编译出so和可执行文件,放到android 真机运行,包含源码。

一、下载ndk链接NDK 下载 | Android NDK | Android Developers 二、解压ndk后得到下面的文件&#xff0c;里面包含ndk-build.cmd&#xff0c;这个是用来编译的。 三、Android.mk和C源码。完整源码下载路径https://download.csdn.net/download/qq_37858386/88622702 3.1 A…