当前位置: 首页 > news >正文

OD 算法题 B卷【全排列】

文章目录

  • 全排列

全排列

  • 给定一个只包含大写英文字母的字符串S,要求你给出对S重新排列的所有不同的排列数;
  • 如ABA,则不同的排列有ABA、AAB、BAA三种;
  • 时间限制5s,内存限制100M

输入描述:
输入一个长度不超过10的字符串S,字母都为大写;
输出描述:
输出S重新排列的所有不同的排列数(含自身)

示例1
输入:
ABA
输出:
3

示例2
输入:
ABCDEFGHHA
输出:
907200

python实现:

  • 计算全排列数,依次除以每个重复字符个数的阶乘;

def calc_factorial(n):""" 计算n的阶乘 """if n in [1, 0]:return 1return n * calc_factorial(n-1)s_str = input().strip()
n = len(s_str)
# 计算A_n_1 * .....  n的阶乘
total_num = calc_factorial(n)# 统计每个字符的个数
char_count = {}
for c in s_str:if c in char_count:char_count[c] += 1else:char_count[c] = 1# 总的全排列数 除以 (每个)重复字符个数的阶乘
for v in char_count.values():if v > 1:total_num /= calc_factorial(v)print(int(total_num))
http://www.dtcms.com/a/236977.html

相关文章:

  • Supersonic 新一代AI数据分析平台
  • JS有哪些迭代器,该如何使用?
  • 【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
  • vue中的派发事件与广播事件,及广播事件应用于哪些场景和一个表单验证例子
  • 5.4.2 Spring Boot整合Redis
  • oracle 11g ADG备库报错ORA-00449 lgwr unexpectedly分析处理
  • C++刷题:日期模拟(1)
  • react菜单,动态绑定点击事件,菜单分离出去单独的js文件,Ant框架
  • 【Docker 01】Docker 简介
  • 数学:花括号在数学中的应用详解
  • Strong Baseline: Multi-UAV Tracking via YOLOv12 with BoT-SORT-ReID 2025最新无人机跟踪
  • Scrapy爬虫教程(新手)
  • 论文阅读:Matting by Generation
  • jenkins gerrit-trigger插件配置
  • [yolov11改进系列]基于yolov11融合改进检测头AFPN4的python源码+训练源码
  • |从零开始的Pyside2界面编程| 用Pyside2打造一个AI助手界面
  • 第10篇《数据库中间件集成监控与全链路观测系统设计》
  • CAN转PROFINET网关设备基本功能介绍
  • uniapp 对接腾讯云IM群组成员管理(增删改查)
  • Ajax Systems公司的核心产品有哪些?
  • 【python深度学习】Day 47 注意力热图可视化
  • STM32的系统滴答定时器简述
  • RTOS学习之重难点
  • 开疆智能Ethernet/IP转Modbus网关连接施耐德ATV320变频器配置案例
  • 怎么让自己ip显示外省?一文说清操作
  • ubuntu中使用docker
  • [总结篇]个人网站
  • 深入剖析Nginx:从入门到高并发架构实战
  • 二.单例模式‌
  • 网页绘制表格