zoukankan      html  css  js  c++  java
  • Java 第十一届 蓝桥杯 省模拟赛 字母重新排列

    字母重新排列

    题目
    问题描述

    将LANQIAO中的字母重新排列,可以得到不同的单词,如LANQIAO、AAILNOQ等,注意这7个字母都要被用上,单词不一定有具体的英文意义。
      请问,总共能排列如多少个不同的单词。

    答案提交

    这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

    异常喜欢这种全排列(不需要求出来每种排列的情况,它只需要得数)(●ˇ∀ˇ●)

    全排列的个数就是
    长度(长度-1)*(长度-2)…………1

    也就是7 * 6 * 5 * 4 * 3 * 2 * 1的结果

    在这里插入图片描述

    裘德玛得,这里有一个重复的A所以我们还要除一个二,结果是( 2520 )全都是坑
    在这里插入图片描述

    或者直接上全排列代码

    package 省模拟赛;
    
    import java.util.ArrayList;
    import java.util.HashSet;
    import java.util.Set;
    
    public class 字母重新排列 {
    	public static int count = 0;
    	public static ArrayList<Integer> list = new ArrayList<Integer>();
    	public static Set<String> set = new HashSet<String>();
    	static String[] strs={"L","A","N","Q","I","A","O"};
    	public static void main(String[] args) {
    		f();
    		System.out.println(set.size());
    	}
    
    	public static void f() {
    		if (list.size() >= 7) { 
    			StringBuilder s=new StringBuilder("");;
    			for (int i = 0; i <=6; i++) {
    				s.append(strs[list.get(i)-1]);
    			}
    			set.add(s.toString());
    			return;
    		}
    		for (int i = 1; i <=7 ; i++) {
    			if (!list.contains(i)) {
    				list.add(i);
    				f();
    				list.remove(list.size() - 1);
    			}
    		}
    	}
    
    }
    
    
  • 相关阅读:
    集中式(SVN)和分布式(Git)版本控制系统的简单比较
    Mac 提示安装包已损坏
    React 获取 url 参数 —— this.props.match
    编写一个 Chrome 浏览器扩展程序
    webpack 配置学习笔记
    Python 进阶学习笔记
    Python 入门学习笔记
    (转)Unity3d各种坑
    unity3d 网页游戏客户端工程构建方案
    (转)在Unity3D的网络游戏中实现资源动态加载
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13074709.html
Copyright © 2011-2022 走看看